括号校验-Java
//目标:括号匹配的校验//思路:使用栈来解决、遇到`([`就`入栈`,遇到`)]`就出栈,遇到其他元素不做处理。处理完后,检查栈的长度,为空表明括号匹配。
private static boolean checkBra(String str) {
String[] arr = str.split("");
if (")".equals(arr[0]) || "]".equals(arr[0])) {
return false;//字符串长度较长时可加此判断,提高效率
}
Stack stack = new Stack();
for (int i = 0; i < arr.length; i++) {
switch (arr[i]) {
case "(":
stack.push(arr[i]);
break;
case "[":
stack.push(arr[i]);
break;
case ")":
if(stack.isEmpty()) stack.push(arr[i]);//多余的括号
Object a = "(".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号
break;
case "]":
if(stack.isEmpty()) stack.push(arr[i]);//多余的括号
Object b = "[".equals(stack.peek()) == true ? stack.pop() : stack.push(arr[i]);//不匹配的括号
break;
default:
break;
}
}
return stack.isEmpty() == true ? true : false;//栈为空则校验成功,不为空则括号不匹配
}
以上是 括号校验-Java 的全部内容, 来源链接: utcz.com/z/394787.html