求JAVA高手解一题,急用,明天要交

来源:百度知道 编辑:UC知道 时间:2024/05/17 03:38:13
题目是这样的:
从一个文件中读取公式,计算每一个公式的结果并输出。
注意:如果公式中有变量,则首先提示输入变量的值。
使用逆波兰式,只包含简单变量。
如a*b+(a+b)*d
ad*ad+d*+
跪求,万分感谢

写了一个很简单的实现,如果有变量的话好要继续判断处理,
文件中的表达式用该是 这样的
数值1 + 数值2 ( 5-2 )
注意,这个表达式中间不能带空格,没处理
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

public class Test {
public static void main(String[] args) {
try {
InputStream in = new FileInputStream("C:\\test.txt");
byte[] by = new byte[in.available()];
in.read(by);
String str = new String(by);
int i = 0;
if(-1 != str.indexOf("+"))
i = str.indexOf("+");
else if(-1 != str.indexOf("-"))
i = str.indexOf("-");
else if(-1 != str.indexOf("*"))
i = str.indexOf("*");
else if(-1 != str.indexOf("/"))
i = str.indexOf("/");

int num1 = Integer.parseInt(str.subSequence(0, i).toString