单独的数字和数学符号从java中的字符串

时间:2014-12-07 16:48:12

标签: java

我正在制作一个计算器类型的Android应用程序,并通过输入数字和不同的标志来评估表达式。我有字符串为“10 + 5-35 * 2 + 80/4”并想要分开所有数字和符号,以便我可以解决表达。

更具体...... number可以是任何数字[0-9]之间的任何数字,任何运算符都可以在那里。

2 个答案:

答案 0 :(得分:0)

您可以遍历字符串并使用以下内容:

for(Character ch : inputString.toCharArray())
    if (Character.isDigit(ch))
        // ...

答案 1 :(得分:0)

    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());
        }
    }