代码不全只是自己记录学习,借鉴:https://blog.csdn.net/javazejian/article/details/52953190;强烈推荐此大神博客。。
public class CheckExpression {
public static String isValid(String expstr)
{
//创建栈
LinkedStack<String> stack = new LinkedStack<>();
int i=0;
while(i<expstr.length())
{
char ch=expstr.charAt(i);
i++;
switch(ch)
{
case '(': stack.push(ch+"");//左括号直接入栈
break;
case ')'://遇见右
// 括号左括号直接出栈
if (stack.isEmpty() || !stack.pop().equals("(")) {//stack.pop()就执行的 ( 的出栈操作
System.out.println("aaaaaaaaaaaaaaa");
return "("; //错误后直接跳出循环返回数据
}
}
}
//最后检测是否为空,为空则检测通过
if(stack.isEmpty())
return "check pass!";
else
return "check exception!";
}
public static void main(String args[])
{
String expstr="((5-3)*8-2";
System.out.println(expstr+" "+isValid(expstr));
}
}
执行结果
((5-3)*8-2 check exception!