在列表中添加整数

时间:2013-12-31 15:22:18

标签: java

我试图在一个列表中添加整数和一行。问题是在字符串中添加整数会返回一个对象本身,而不是整数的总和。

例如,我有字符串3 4 6 2 7 4

我想像这样添加所有数字:3 + 4 + 6 + 2 + 7 + 4 = 26。我试过了:

for (String number : after.split ("\\s+")) {
       int v = Integer.parseInt (number);
       System.out.println (v);
       numbers.add (v);
}

而不是26,我得[3 4 6 2 7 4]。如何获得整数之和而不是对象的结果?

4 个答案:

答案 0 :(得分:4)

这个怎么样

int sum = 0; //Declare a variable to keep track of your sum
for (String number : after.split ("\\s+")) {
    int v = Integer.parseInt (number);
    System.out.println (v);
    numbers.add(v);
    sum += v; //Each iteration of your loop add the current int to your sum
}
System.out.println(sum);

目前,您只是将每个int添加到列表中。如果您想要列表中的这些值的总和,您需要另一个变量来表示这一点。在我的例子中,我使用了一个名为sum的int变量。每次在列表中添加int时,您也会将其添加到当前的总和值中。

答案 1 :(得分:2)

添加到列表与添加整数值不同。您正在寻找

  numbers +=v;

其中int值中的数字,并将循环中的每个值v加起来。

int numbers =0;
 for (String number : after.split ("\\s+")) {
                    int v = Integer.parseInt (number);
                    System.out.println (v);
                    numbers +=v;
                }
System.out.println(numbers);

并且

numbers +=v;numbers = numbers+v

的简写

答案 2 :(得分:1)

使用Java 8和streams,您将能够在一行中执行此操作:

int sum = Arrays.stream("1 2 3".split("\\s+")).mapToInt(Integer::parseInt).sum();

答案 3 :(得分:0)

我会像这样使用StringTokenizer

public static long add(String in) {
    long acc = 0;
    StringTokenizer st = new StringTokenizer(in);
    while (st.hasMoreTokens()) {
        acc += Integer.valueOf(st.nextToken().trim());
    }
    return acc;
}

public static void main(String args[]) throws IOException {
    System.out.println(add("3 4 6 2 7 4"));
}

输出26。