java从文件中读取并计算数学算式
时间: 2024-05-13 22:13:28 浏览: 5
以下是一个示例代码,它从一个文本文件中读取数学算式并计算结果:
```java
import java.io.BufferedReader;
import java.io.FileReader;
public class MathExpressionEvaluator {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new FileReader("expressions.txt"));
String line;
while((line = reader.readLine()) != null) {
double result = eval(line);
System.out.println(line + " = " + result);
}
reader.close();
} catch(Exception e) {
e.printStackTrace();
}
}
public static double eval(String expression) {
char[] tokens = expression.toCharArray();
// 分离数字和操作符
double[] numbers = new double[10];
char[] op = new char[10];
int numCount = 0;
int opCount = 0;
StringBuilder sb = new StringBuilder();
for(char c : tokens) {
if(Character.isDigit(c) || c == '.') {
sb.append(c);
} else {
numbers[numCount++] = Double.parseDouble(sb.toString());
sb = new StringBuilder();
op[opCount++] = c;
}
}
numbers[numCount++] = Double.parseDouble(sb.toString());
// 执行操作
double result = numbers[0];
for(int i = 0; i < opCount; i++) {
switch(op[i]) {
case '+':
result += numbers[i+1];
break;
case '-':
result -= numbers[i+1];
break;
case '*':
result *= numbers[i+1];
break;
case '/':
result /= numbers[i+1];
break;
}
}
return result;
}
}
```
在这个示例中,我们假设数学算式是一个由数字和操作符组成的字符串,例如“1+2*3”。我们首先使用字符分离数字和操作符,然后按照操作符的优先级计算结果。在计算过程中,我们使用一个变量来保存当前的结果,并根据不同的操作符执行不同的操作。
我们可以将数学算式存储在一个文本文件中,每行一个算式。上面的代码可以读取该文件并计算每个算式的结果。