Java匹配字符串中的四则运算代码
时间: 2023-08-31 11:23:22 浏览: 169
java计算的字符串四则运算
### 回答1:
Java中的正则表达式可以用来匹配四则运算字符串,具体的代码可以例如:String pattern = "[+-/*]"; Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(str);
### 回答2:
Java匹配字符串中的四则运算代码可以通过正则表达式和递归的方式实现。以下是一个简单的示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String expression = "3 + 4 * 2 - 6 / 3";
// 使用正则表达式匹配数字和运算符
Pattern pattern = Pattern.compile("(\\d+)|([+\\-*/])");
Matcher matcher = pattern.matcher(expression);
// 递归计算表达式结果
int result = calculate(matcher);
System.out.println("结果:" + result);
}
public static int calculate(Matcher matcher) {
int num1 = 0;
int num2 = 0;
char operator = ' ';
while (matcher.find()) {
String match = matcher.group();
if (match.matches("\\d+")) {
num2 = Integer.parseInt(match);
switch (operator) {
case '+':
num1 += num2;
break;
case '-':
num1 -= num2;
break;
case '*':
num1 *= num2;
break;
case '/':
num1 /= num2;
break;
default:
num1 = num2;
break;
}
} else {
operator = match.charAt(0);
}
}
return num1;
}
}
```
该代码会将字符串表达式拆分为数字和运算符,并递归计算表达式的结果。在计算过程中,乘法和除法的优先级高于加法和减法。最后将计算结果输出。
### 回答3:
下面的代码演示了如何使用Java匹配字符串中的四则运算表达式:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ArithmeticMatcher {
public static void main(String[] args) {
// 定义待匹配的字符串
String expression = "2 + 3 * (4 - 1)";
// 定义匹配四则运算表达式的正则表达式
String regex = "\\d+(\\.\\d+)?(\\s*[-+*/]\\s*\\d+(\\.\\d+)?)*";
// 创建Pattern对象
Pattern pattern = Pattern.compile(regex);
// 创建Matcher对象
Matcher matcher = pattern.matcher(expression);
// 判断是否匹配成功
if (matcher.matches()) {
System.out.println("表达式匹配成功!");
} else {
System.out.println("表达式匹配失败!");
}
}
}
```
此代码使用了Java中的正则表达式来匹配四则运算表达式。首先定义了一个待匹配的字符串`expression`,然后定义了一个用于匹配四则运算表达式的正则表达式`regex`。接下来,通过调用`Pattern.compile(regex)`方法,将正则表达式编译为一个`Pattern`对象。然后,通过调用`pattern.matcher(expression)`方法,创建一个`Matcher`对象来执行匹配操作。最后,通过调用`matcher.matches()`方法,判断匹配是否成功,并输出相应的结果。
在这个例子中,我们使用了一个比较简单的正则表达式来匹配四则运算表达式。如果需要更复杂的匹配规则,可以根据具体需求进行调整。
阅读全文