import java.util.Scanner; import java.util.Stack; /** * 判断括号是否匹配 ((())) () */ public class judgeParentheses { //创建一个字符型的栈 public static boolean isValid(String s) { Stack<Character> stack = new Stack<>();//创建一个栈 for (int i = 0; i < s.length(); i++) { //如果是左括号 if (s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{') { stack.push(s.charAt(i)); } //如果是右括号 if (s.charAt(i) == ')' || s.charAt(i) == ']' || s.charAt(i) == '}') { // 如果栈为空,则证明括号不匹配,返回false if (stack.empty()) { return false; } // 如果栈顶元素和下一个右括号相匹配,则将其栈顶元素出栈 if (stack.peek() == '(' && s.charAt(i) == ')' || stack.peek() == '[' && s.charAt(i) == ']' || stack.peek() == '{' && s.charAt(i) == '}') { stack.pop(); } } } // 遍历循环结束后,如果发现栈里为空,则证明括号匹配完毕;否则括号不匹配 if (stack.empty()){ return true; } return false; } public static void main(String[] args) { System.out.println("Please enter a sentence include '(',')','[',']','{','}' "); while (true){ Scanner sc=new Scanner(System.in); String sentence=sc.nextLine(); System.out.println("The result is "+isValid(sentence)); } } }