Java 从文件中获取信息并进行解析以从中获取方程式

Java 从文件中获取信息并进行解析以从中获取方程式,java,math,file-io,indexof,parseint,Java,Math,File Io,Indexof,Parseint,我知道,wIt很让人困惑,但本质上我想弄清楚的是如何从文件中获取信息,并对其进行解析,从而得到文件中的方程式 比如说,该文件包含问题8+5=13 我想让我的程序读取文件,然后取整数8和5,识别运算符符号,然后进行数学运算,以便将其与最终答案进行比较,从而为问题评分 我已经有了这些代码行,它们可以捕获第一个整数,但是我一直在获取运算符和第二个整数,这样我就可以让程序来做数学运算了 int whiteSpace1 = fileContent.indexOf(" "); int fir

我知道,wIt很让人困惑,但本质上我想弄清楚的是如何从文件中获取信息,并对其进行解析,从而得到文件中的方程式

比如说,该文件包含问题8+5=13

我想让我的程序读取文件,然后取整数8和5,识别运算符符号,然后进行数学运算,以便将其与最终答案进行比较,从而为问题评分

我已经有了这些代码行,它们可以捕获第一个整数,但是我一直在获取运算符和第二个整数,这样我就可以让程序来做数学运算了

int whiteSpace1 = fileContent.indexOf(" ");
        int first = Integer.parseInt(fileContent.substring(0, whiteSpace1));
        int second = Integer.parseInt(fileContent.substring(whiteSpace1, 2));
为了得到操作符和第二个int,我不知道从这里到哪里去。 请帮忙

额外信息:不会总是只有两个操作数,也不会总是整数。
对于简单表达式解析,我也不能使用数组或正则表达式或尝试/ catch。

,考虑使用StreamTokenizer。

查看其工作原理的简单示例代码段:

StreamTokenizer tokenizer = new StreamTokeniner(new StringReader(fileContent));
while (tokenizer.nextToken() == Tokenizer.TT_EOF) {
  if (tokenizer.ttype > 32) {
    System.out.print("token type: '" + ((char) tokenizer.ttype) + "'");
  } else {
    System.out.print("token type: " + tokenizer.ttype);
  }
  System.out.println(" string value: " + tokenizer.sval + 
                     " numeric value: " + tokenizer.nval);
} 

阅读编程中的Lexer和Parser..:它总是只有一个表达式和两个操作数吗?或者它可能更复杂?