0
我有一個難題,我需要將一個可能的不同數學字符串分離成單獨的實體以存儲在ArrayList中。Java與數學運算符正則表達式
從掃描儀讀取輸入可能是以下任何一種。
Scanner input = new Scanner(System.in);
String read = input.nextLine();
ArrayList al = new ArrayList();
-5 + 10 //possible value of read
9--5 //possible value of read
-20* 10 //possible value of read
基本上我需要抓住的第一個數字和一個潛在的負號,全部忽略開頭或結尾的空白並儲存起來,然後採取下一個字符忽略空格和存儲它(問題的運營商),和然後下一個帶有可選負號的數字,再次忽略空格。
我對正則表達式不是很滿意,而且這裏有很多複雜的可能性,我不知道該如何解決。
如果我不得不在邏輯上攤開來,我會說,它正是如此:
獲取第一個非空格字符和結尾處直接跟隨它最後一個號碼數字。
獲取下一個非空白字符
在直接跟隨它最後數位獲取下一個非空格字符和結尾。
語法上的任何指針可以完成該操作?
編輯︰我不是簡單地試圖evualuate表達的結果的問題,我需要將其分解並將其存儲在一個ArrayList以後操作作爲分數類的一部分。
你不應該使用正則表達式爲此,因爲它不會用嵌套的算術表達式進行縮放。相反,你需要一個解析器。 –
你必須使用正則表達式嗎?如果沒有,請查看此[答案](http://stackoverflow.com/a/36341949/4256677) – varontron