栈验证表达式中的括号是否匹配

来源:互联网 发布:js 定义utf16 编辑:程序博客网 时间:2024/05/16 13:58
import java.util.Stack;public class 语法匹配 {public static void main(String[] args) {String s = "[";检测(s);}private static void 检测(String s) {Stack stack = new Stack();for(int  i = 0 ;i < s.length() ;i++){char c = s.charAt(i);if(c == '(' || c == '{' || c == '['){stack.add(c); }else if(c == ')'){if(stack.peek() == '('){stack.pop();}else{System.out.println("语法错误," + c + "不匹配");return ;}}else if(c == ']'){if(stack.peek() == '['){stack.pop();}else{System.out.println("语法错误," + c + "不匹配");return ;}}else if(c == '}'){if(stack.peek() == '{'){stack.pop();}else{System.out.println("语法错误," + c + "不匹配");return ;}}}if(stack.isEmpty()){System.out.println("语法正确");}else{System.out.println("语法错误");}}}

原创粉丝点击