[英]Splitting string input into discrete numbers and operators
我正在嘗試將像"-10 5 + 3 *"
這樣的字符串拆分成組成部分以用於基本算術,同時保持運算符的完整性,例如不要將-10
與-
運算符和10
混淆。 我應該如何處理這個問題?
目前我正在做一個基於空格分隔符的簡單拆分,並打算編寫單獨的方法來處理每個操作。 但是,這不考慮沒有空格的輸入:例如"11+1+1"
。 我已經探索了每個字符的定界,例如string.split("")
但在邏輯上遺漏了一些東西。
String[] simplifyCommand(String s) {
return s.split(" ");
//or s.split(""); for individual characters
}
您可以使用\b
字邊界正則表達式錨將輸入字符串拆分為數字和運算符:
"11+1+1".split("\\b");
上面的表達式會產生[11, +, 1, +, 1]
作為結果,因此您可以按原樣遍歷結果。
同樣, "11+1+1".split("\\b")
會產生[-, 11, +, 1, +, 1]
作為結果。 這不應該使解釋操作本身變得更加困難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.