Java 从文件中获取信息并进行解析以从中获取方程式
我知道,wIt很让人困惑,但本质上我想弄清楚的是如何从文件中获取信息,并对其进行解析,从而得到文件中的方程式 比如说,该文件包含问题8+5=13 我想让我的程序读取文件,然后取整数8和5,识别运算符符号,然后进行数学运算,以便将其与最终答案进行比较,从而为问题评分 我已经有了这些代码行,它们可以捕获第一个整数,但是我一直在获取运算符和第二个整数,这样我就可以让程序来做数学运算了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
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..:它总是只有一个表达式和两个操作数吗?或者它可能更复杂?