【问题标题】:Adding Integers within a list在列表中添加整数
【发布时间】:2014-01-01 00:28:09
【问题描述】:

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

例如,我有字符串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);
}

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

【问题讨论】:

  • 您似乎已将numbers 声明为List<Integer> 或类似的名称。 add() 方法因此只是将传递的整数添加到列表中,id 不会进行数学 add 操作。下面的答案已经向您展示了如何正确总结数字。

标签: java


【解决方案1】:

这个怎么样

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 添加到列表时,您也会将其添加到当前总和值中。

【讨论】:

  • 伙计,我从没想过我的任何问题会如此受欢迎!
【解决方案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 的简写

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    • 好电话,我还不熟悉 Java 8 的东西。
    【解决方案4】:

    我会像这样使用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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-06
      • 2012-11-16
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2015-03-05
      • 2019-07-06
      • 1970-01-01
      相关资源
      最近更新 更多