java判断算数表达式是否正确
时间: 2023-07-08 15:51:31 浏览: 87
可以使用栈来判断算数表达式是否正确。具体步骤如下:
1. 新建一个栈,用来存储运算符。
2. 遍历算数表达式中的每个字符,如果是左括号、加减乘除之一,则将其入栈。
3. 如果当前字符是右括号,则从栈中取出一个运算符,判断是否为左括号的匹配运算符,如果不是,则表达式不正确;如果是,则将左括号弹出栈。
4. 遍历完整个算数表达式后,如果栈中还有运算符,则表达式不正确;如果栈为空,则表达式正确。
以下是示例代码:
```java
import java.util.Stack;
public class ArithmeticExpressionChecker {
public static boolean isExpressionCorrect(String expression) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < expression.length(); i++) {
char ch = expression.charAt(i);
if (ch == '(' || ch == '+' || ch == '-' || ch == '*' || ch == '/') {
stack.push(ch);
} else if (ch == ')') {
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
}
}
return stack.isEmpty();
}
}
```
使用示例:
```java
public static void main(String[] args) {
String expression1 = "((1+2)*(3-4))/5";
String expression2 = "(1+2)*(3-4))/5";
System.out.println(ArithmeticExpressionChecker.isExpressionCorrect(expression1)); // true
System.out.println(ArithmeticExpressionChecker.isExpressionCorrect(expression2)); // false
}
```
阅读全文