【发布时间】:2014-12-07 16:48:12
【问题描述】:
我正在为 android 制作一个计算器类的应用程序,但由于输入数字和不同的符号而无法评估表达式。我的字符串为“10+5-35*2+80/4”,并且想要将所有数字和符号,以便我可以解决表达式。
更具体.... number 可以是任何数字的 [0-9] 之间的任何数字,并且可以有任何运算符。
【问题讨论】:
-
了解表达式树
标签: java
我正在为 android 制作一个计算器类的应用程序,但由于输入数字和不同的符号而无法评估表达式。我的字符串为“10+5-35*2+80/4”,并且想要将所有数字和符号,以便我可以解决表达式。
更具体.... number 可以是任何数字的 [0-9] 之间的任何数字,并且可以有任何运算符。
【问题讨论】:
标签: java
您可以遍历字符串并使用以下内容:
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());
}
}
【讨论】: