Java balanced expressions check {[()]}
2022-09-01 23:59:09
我正在尝试创建一个程序,该程序将字符串作为参数放入其构造函数中。我需要一个检查字符串是否为平衡括号表达式的方法。它需要处理 ( { [ ] } ) 每个打开需要平衡与其相应的右括号。例如,用户可以输入 [({})],该符号将平衡,而 }{ 将不平衡。这不需要处理字母或数字。我需要使用堆栈来执行此操作。
我得到了这个伪代码,但不知道如何在java中实现它。任何建议都会很棒。
更新 - 对不起,忘记发布我到目前为止所拥有的内容。这一切都搞砸了,因为起初我试图使用char,然后我尝试了一个数组。我不太确定去哪里。
import java.util.*;
public class Expression
{
Scanner in = new Scanner(System.in);
Stack<Integer> stack = new Stack<Integer>();
public boolean check()
{
System.out.println("Please enter your expression.");
String newExp = in.next();
String[] exp = new String[newExp];
for (int i = 0; i < size; i++)
{
char ch = exp.charAt(i);
if (ch == '(' || ch == '[' || ch == '{')
stack.push(i);
else if (ch == ')'|| ch == ']' || ch == '}')
{
//nothing to match with
if(stack.isEmpty())
{
return false;
}
else if(stack.pop() != ch)
{
return false;
}
}
}
if (stack.isEmpty())
{
return true;
}
else
{
return false;
}
}
}