如何判断一个表达式中的左右括号是否匹配

来源:互联网 发布:全套红鸟棋牌源码 编辑:程序博客网 时间:2024/05/22 14:12
public class Bracket {    static boolean isMatched(String brackets){        int string_size = brackets.length();        Stack<Character> match = new Stack<Character>();        char symbol ;        boolean is_match = true ;        for(int i = 0 ; i<string_size ; i++){            symbol = brackets.charAt(i);            if(symbol == '{' || symbol == '[' || symbol == '('){                match.push(symbol);            }            if(symbol == '}' || symbol == ']' || symbol == ')'){                if(match.isEmpty()){                    is_match = false ;                    break ;                }else{                    if((symbol =='}' && match.peek() =='{')                            ||(symbol ==']' && match.peek() =='[')                            ||(symbol ==')' && match.peek() =='(')){                        match.pop();                    }else{                        is_match = false ;                        break ;                    }                }            }        }        if(!match.isEmpty()){            is_match = false ;        }        return is_match ;    }    public static void main(String[] args) {        String brackets = "(())abc{[]()}" ;        System.out.println(Bracket.isMatched(brackets));    }}
阅读全文
1 0