0
我正在做一個android的計算器類應用程序,並因爲輸入數字和不同的符號而產生評估表達式。我的字符串爲「10 + 5-35 * 2 + 80/4「,並希望分開所有的數字和符號,以便我可以解決表達。單獨的數字和java中的字符串的數學符號
更具體.... 號碼可以是任何數字[0-9]之間的任何數字,任何運營商都可以在那裏。
我正在做一個android的計算器類應用程序,並因爲輸入數字和不同的符號而產生評估表達式。我的字符串爲「10 + 5-35 * 2 + 80/4「,並希望分開所有的數字和符號,以便我可以解決表達。單獨的數字和java中的字符串的數學符號
更具體.... 號碼可以是任何數字[0-9]之間的任何數字,任何運營商都可以在那裏。
可以遍歷字符串,並使用以下命令:
for(Character ch : inputString.toCharArray())
if (Character.isDigit(ch))
// ...
List<String> numbers = new ArrayList<>();
List<String> operators = new ArrayList<>();
String str = "1+2/300%4";
char[] strCharArray = str.toCharArray();
StringBuilder numbersSb = new StringBuilder();
for (int i = 0; i < strCharArray.length; i++) {
if (Character.isDigit(strCharArray[i])) {
numbersSb.append(strCharArray[i]);
} else {
operators.add(String.valueOf(strCharArray[i]));
numbers.add(numbersSb.toString());
numbersSb = new StringBuilder();
}
if (i == strCharArray.length - 1 && !numbersSb.toString().isEmpty()) {
numbers.add(numbersSb.toString());
}
}
閱讀有關表達式樹 – sol4me 2014-12-07 16:49:56
重複:http://stackoverflow.com/questions/13525024/how-to-split-a -mathematical表達上運營商-AS-定界符-而維持 – JSS 2014-12-07 16:51:11