2017-09-30 18 views
-2
簡單的數學公式解析器正則表達式

目前學習Java,並試圖解析爲有效輸入一個數學公式:在Java

例如,用戶必須在表單中輸入的整數:

操作數運算符操作數

按照該特定順序,然後程序需要能夠判斷輸入是否在該形式,然後找出簡單的等式。

一個例子是:

4 * 8,其結果將得到爲32

程序也將拒絕像45.6 * 0.3,或45 + 3/4

對於此工作,我必須使用正則表達式或其他一些if循環方法嗎?

+1

這兒有數學解析器實現不計其數,只是谷歌的 「Java數學解析器」。而不是,大多數人不使用正則表達式,沒有必要。 – user3159253

+0

如果您的要求只是檢查有效的用戶輸入,您可以使用[regex](https://regex101.com/r/KLovyh/1)。 – SomeDude

+0

你應該研究一下,嘗試一些東西,併發佈一個問題,如果你卡住了。現在,你的問題太廣泛了。 – Dici

回答

2

可以一方面使用正則表達式來,擺脫無效輸入的,並且在另一方面利用組提取操作數和操作與應用數學

/^(\\d+)\\s*([+\\-*\\/])\\s*(\\d+)$/ 

編輯的:

正如Rory Daulton指出的,有符號的整數被排除在上述正則表達式,所以下面的一個應改用

/^([+\\-]?\\d+)\\s*([+\\-*\\/])\\s*([+\\-]?\\d+)$/ 
+0

我如何在代碼中實現它?喜歡,那去哪裏? – Nawlidge

+0

我爲你留下了最簡單的部分 – mshaaban

+0

我不斷得到一個不正確的轉義字符錯誤,你能給我一個樣本行,至於它屬於哪裏嗎? – Nawlidge