Java实现括号匹配校验

来源:互联网 发布:在线教育 java源码 编辑:程序博客网 时间:2024/05/17 22:32
检测括号是否匹配的方法可用“期待的急迫程度”这个概念来描述。
/** * 括号匹配校验 * [ ( [ ] [ ] ) ] * 1 2 3 4 5 6 7 8 */public class BracketMatchTest {public static void main(String[] args) {// TODO Auto-generated method stubStack<String> s = new Stack<String>();//将输入的一个字符压入栈顶Scanner input = new Scanner(System.in);String bracket = input.next();s.push(bracket);//第一个元素不是左括号则输入非法if(s.size()!=0){if(!s.peek().equals("(") && !s.peek().equals("[")){System.out.println("输入有误,第一个请输入左括号");return;}}while(s.size()!=0){//输入第二个开始匹配,根据"期待的急迫程度"String bracket1 = input.next();//如果输入非括号字符,则提示非法输入if(!bracket1.equals("(") && !bracket1.equals("[") && !bracket1.equals(")") && !bracket1.equals("]")){System.out.println("输入有误,请输入括号字符");return;}//获取栈顶元素String top = (String)s.peek();//如果匹配则弹出栈顶元素if((top.equals("[") && bracket1.equals("]"))){s.pop();System.out.println("匹配[]成功");continue;}if((top.equals("(") && bracket1.equals(")"))){s.pop();System.out.println("匹配()成功");continue;}//不匹配则继续压入栈顶s.push(bracket1);}input.close();}}


0 0
原创粉丝点击