是的,你可以使用Java的Stack
類來實現括號匹配。下面是一個簡單的示例:
import java.util.Stack;
public class BracketMatching {
public static void main(String[] args) {
String input = "{[()]}";
System.out.println("括號匹配結果: " + isBracketMatching(input));
}
public static boolean isBracketMatching(String input) {
Stack<Character> stack = new Stack<>();
for (char c : input.toCharArray()) {
if (c == '{' || c == '[' || c == '(') {
stack.push(c);
} else {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((c == '}' && top != '{') || (c == ']' && top != '[') || (c == ')' && top != '(')) {
return false;
}
}
}
return stack.isEmpty();
}
}
這個程序首先定義了一個isBracketMatching
方法,該方法接受一個字符串作為輸入。然后,它創建了一個Stack
對象來存儲遇到的左括號。接下來,它遍歷輸入字符串中的每個字符。如果遇到一個左括號,就將其壓入棧中。如果遇到一個右括號,就檢查棧是否為空,如果為空,說明沒有匹配的左括號,返回false
。否則,彈出棧頂的左括號,并檢查它是否與當前的右括號匹配。如果不匹配,返回false
。最后,如果遍歷完字符串后棧為空,說明所有的括號都匹配,返回true
;否則,返回false
。