// String s = "..{.(.}..[...]....{...}....)...(...).."; 判断括号是否匹配
public static void main(String[] args) {
String str = "..{.}...[...]....{...}.......(...).().";
Stack stack = new Stack<>();
boolean flag = true;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == '(') {
stack.push(')');
}
if (str.charAt(i) == '[') {
stack.push(']');
}
if (str.charAt(i) == '{') {
stack.push('}');
}
if (str.charAt(i) == ')' || str.charAt(i) == ']' || str.charAt(i) == '}') {
if (stack.isEmpty()) {
flag = false;
} else {
char c = (char) stack.pop();
if (c != str.charAt(i)) {
flag = false;
break;
}
}
}
}
if (stack.isEmpty() == false) {
flag = false;
}
if (flag) {
System.out.println("匹配");
} else {
System.out.println("不匹配");
}
}
主要是利用了栈的结构特点。