用java写出一段代码判别一个算术表达式的圆括号是否正确匹配
时间: 2024-05-12 08:17:49 浏览: 20
可以使用栈(stack)来判断一个算术表达式的圆括号是否正确匹配,具体代码如下:
```
import java.util.*;
public class MatchParentheses {
public static void main(String[] args) {
String s = "((1+2)*3)";
if (isMatched(s)) {
System.out.println("圆括号匹配!");
} else {
System.out.println("圆括号不匹配!");
}
}
public static boolean isMatched(String s) {
Stack<Character> stack = new Stack<>(); // 栈用来存放左括号
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '(') { // 左括号入栈
stack.push(c);
} else if (c == ')') { // 右括号匹配左括号
if (stack.isEmpty()) { // 栈为空则没有左括号可匹配,返回false
return false;
} else {
stack.pop();
}
}
}
return stack.isEmpty(); // 栈为空则左括号全部匹配,返回true,否则返回false
}
}
```