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

时间:2013-11-21 18:54:09

标签: java math file-io indexof parseint

我知道,这非常令人困惑,但基本上我想弄清楚的是如何从文件中获取信息并解析它以便在文件中获取方程式。

就像说的那样,该文件包含问题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。 请帮忙。

额外信息:不会总是只有两个操作数,它们不会始终是整数。 我也不能使用数组或正则表达式或try / catch。

1 个答案:

答案 0 :(得分:0)

对于简单表达式解析,请考虑使用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);
}