2013-11-21 63 views
1

w我知道這很混亂,但基本上我想知道的是如何從文件中獲取信息並通過它解析以獲取文件中的方程式。從文件中獲取信息並通過解析從中獲取公式

好比說,該文件包含的問題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

閱讀詞法分析器和分析器編程.. :) – Arun

+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); 
}