簡體   English   中英

將字符串輸入拆分為離散數字和運算符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM