目前學習Java,並試圖解析爲有效輸入一個數學公式:在Java
例如,用戶必須在表單中輸入的整數:
操作數運算符操作數
按照該特定順序,然後程序需要能夠判斷輸入是否在該形式,然後找出簡單的等式。
一個例子是:
4 * 8,其結果將得到爲32
程序也將拒絕像45.6 * 0.3,或45 + 3/4
對於此工作,我必須使用正則表達式或其他一些if循環方法嗎?
目前學習Java,並試圖解析爲有效輸入一個數學公式:在Java
例如,用戶必須在表單中輸入的整數:
操作數運算符操作數
按照該特定順序,然後程序需要能夠判斷輸入是否在該形式,然後找出簡單的等式。
一個例子是:
4 * 8,其結果將得到爲32
程序也將拒絕像45.6 * 0.3,或45 + 3/4
對於此工作,我必須使用正則表達式或其他一些if循環方法嗎?
可以一方面使用正則表達式來,擺脫無效輸入的,並且在另一方面利用組提取操作數和操作與應用數學
/^(\\d+)\\s*([+\\-*\\/])\\s*(\\d+)$/
編輯的:
正如Rory Daulton指出的,有符號的整數被排除在上述正則表達式,所以下面的一個應改用
/^([+\\-]?\\d+)\\s*([+\\-*\\/])\\s*([+\\-]?\\d+)$/
拿來看的是: https://stackoverflow.com/a/11009403/8701820
^([-+/*]\d+(\.\d+)?)*
你也可以檢查這個網站:https://regex101.com
這是錯的,他希望整數輸入,只有兩個操作數和一個操作,據我所見 – mshaaban
這兒有數學解析器實現不計其數,只是谷歌的 「Java數學解析器」。而不是,大多數人不使用正則表達式,沒有必要。 – user3159253
如果您的要求只是檢查有效的用戶輸入,您可以使用[regex](https://regex101.com/r/KLovyh/1)。 – SomeDude
你應該研究一下,嘗試一些東西,併發佈一個問題,如果你卡住了。現在,你的問題太廣泛了。 – Dici