就像说的那样,该文件包含问题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。
答案 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);
}