java判断算数表达式是否正确
时间: 2023-07-08 08:39:20 浏览: 44
基于C++实现(控制台)算数表达式求解【100012674】
可以使用栈来判断算数表达式是否正确。具体做法如下:
1. 遍历算数表达式,如果是左括号、加号、减号、乘号、除号之一,则将其压入栈中。
2. 如果是右括号,则弹出栈顶元素,如果是左括号则匹配成功,否则匹配失败。
3. 遍历结束后,如果栈为空,则表达式正确,否则表达式错误。
具体实现可以参考下面的 Java 代码:
```java
import java.util.*;
public class ArithmeticExpression {
public static boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(' || c == '+' || c == '-' || c == '*' || c == '/') {
stack.push(c);
} else if (c == ')') {
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
String s1 = "((1+2)*3-4)/5";
String s2 = "((1+2)*3-4)/5)";
System.out.println(s1 + " is " + (isValid(s1) ? "valid" : "invalid"));
System.out.println(s2 + " is " + (isValid(s2) ? "valid" : "invalid"));
}
}
```
输出结果为:
```
((1+2)*3-4)/5 is valid
((1+2)*3-4)/5) is invalid
```
阅读全文