I been working on this everyday and im stuck trying to make my brackets work where when user add () it shows its balance. But i am missing other brackets such as {}, and []. I wanted to know how to fix the method where program when user type (), [], {}, the program will display it being balance.
HTML Code:
objective: program that checks the parentheses(), brackets [], and braces {} for balance and proper nesting in an input string. The string can have nested brackets at any level, as well as any other "non-important" characters. With respect to your implementation, you must use Java's Stack class.
[HTML]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Queue;
import java.util.LinkedList;
public class QueueSample extends JFrame
{
JButton oneButton = new JButton("Push");
JButton twoButton = new JButton("Pop");
JButton peekButton = new JButton("Peek");
JButton evaluateButton = new JButton ("Evaluate");
private Queue <String> theQueue = new LinkedList <String> ();
public static void main()
{
QueueSample demo = new QueueSample();
demo.setSize(400,100);
demo.setDefaultCloseOperation(EXIT_ON_CLOSE);
demo.setTitle("Queue Demo");
demo.createGUI();
demo.setVisible(true);
}
public void createGUI()
{
Container window = getContentPane();
window.setLayout(new FlowLayout());
oneButton.addActionListener(new EnqueueAction());
window.add(oneButton);
twoButton.addActionListener(new DequeueAction());
window.add(twoButton);
peekButton.addActionListener(new peekAction());
window.add(peekButton);
window.add(evaluateButton);
evaluateButton.addActionListener(new evaluateAction());
}
private class evaluateAction implements ActionListener{
public void actionPerformed (ActionEvent e)
{
Test myTest = new Test();
myTest.checkExpression();
}
}
private class EnqueueAction implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
String s = JOptionPane.showInputDialog("Enter a value to enqueue");
theQueue.offer(s);
}
}
private class DequeueAction implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
try{
JOptionPane.showMessageDialog (null, "Removed: " + theQueue.remove());
}
catch (Exception event){
JOptionPane.showMessageDialog(null, "Stack is empty", "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
//make a button and associate it with check syntax action
//display a dialog box
//Jlabels
private class peekAction implements ActionListener{
public void actionPerformed (ActionEvent e){
try{
JOptionPane.showMessageDialog(null, "The top is: " + theQueue.peek());
}
catch (Exception event){
JOptionPane.showMessageDialog(null, "Stack is empty", "Error", JOptionPane.ERROR_MESSAGE);
}
}
}
}
[/HTML]
[HTML]
public class BalancedParentheses{
public static void main(){
System.out.println("Enter set of parentheses: ");
Scanner s = new Scanner(System.in);
String input = s.nextLine();
if(input.length() != 0 && check(input)){
checkBalance(input);
}else
System.out.println("Incorrect Input, Try Again !");
}
public static boolean check(String a){
boolean isReturn = true;
for(int i = 0; i < a.length(); i++){
if(a.charAt(i) != '(' && a.charAt(i) != ')'){
isReturn = false;
break;
}
}
return isReturn;
}
public static boolean look(String b){
boolean isReturn = true;
for(int i = 0; i < b.length(); i++){
if(b.charAt(i) != '[' && b.charAt(i) != ']'){
isReturn = false;
break;
}
}
return isReturn;
}
public static void checkBalance(String input){
Stack<Character> st = new Stack<Character>();
int index = 0;
int[] arr = new int[input.length()];
for(int i = 0; i < input.length(); i++){
if(input.charAt(i) == '('){
st.push(input.charAt(i));
arr[index] = i;
index++;
}else{
if(input.charAt(i) == ')' && !st.empty() && st.peek().equals('(')){
st.pop();
index--;
input = input.substring(0, arr[index]) + "(" + input.substring((arr[index] + 1), i) + ")" + input.substring(i+1, input.length());
}else
st.push(input.charAt(i));
}
}
System.out.println("Result: )" );
}
public static void anotherBalance(String input){
Stack<Character> st = new Stack<Character>();
int index = 0;
int [] arr = new int[input.length()];
for(int i = 0; i < input.length(); i++){
if(input.charAt(i) == '['){
st.push(input.charAt(i));
arr[index] = i;
index++;
}else{
if(input.charAt(i) == ']' && !st.empty() && st.peek().equals(']')){
st.pop();
index--;
input = input.substring(0, arr[index]) + "[" + input.substring((arr[index] + 1), i) + "]" + input.substring(i+1, input.length());
}else
st.push(input.charAt(i));
}
}
if(st.empty())
// String input = JOptionPane.showInputDialog(null, "The brackets are well balanced!");
System.out.println("The brackets are well balanced !");
else
System.out.println("The brackets are not well balanced !");
}
[/HTML]
}