查找由运算符分隔的数字字符串的总和

时间:2018-02-09 02:06:11

标签: java

给定String =“128 + 16 + 8 + 2 + 1” 答案应打印出155

代码应该添加字符串中的所有数字,答案应该打印成字符串。 我试图为此编写代码,但最后2个数字不会添加,我当前的答案是打印出153.寻求帮助以引导我找到正确的解决方案。

import java.util.stream.*;
public class add {
    static void evalA(String s) {
        int n = countChar(s,'+');
        System.out.println(s);
        int cnt = 0;
        int[] data = new int[n];
        for(int i=0;i<s.length();i++) {
            if (s.charAt(i)=='+') {
                System.out.println(s.substring(0,i));
                data [cnt] = Integer.parseInt(s.substring(0,i));
                cnt++;
                s = s.substring(i+1,s.length()-1);
               i=0;
            }

        }
        String sum = ""+IntStream.of(data).sum();
        System.out.println(sum); 
    }  
}

1 个答案:

答案 0 :(得分:0)

你可以这样做:

public static void main(String[] args) 
{
    evaluate("128+16+8+2+1");
}

public static void evaluate(String equation)
{
    String[] numbers = equation.split("\\+");

    int sum = 0;

    for (String number : numbers)
    {
        //could wrap this in a check incase of exception or errors
        sum += Integer.parseInt(number);
    }

    System.out.println(sum);
}

它只是将字符串向上分割+以将单个数字作为数组,然后循环遍历数组并将每个数字值添加到和变量。