【问题标题】:How to sum all the elements of an arraylist如何对arraylist的所有元素求和
【发布时间】:2014-01-29 14:48:02
【问题描述】:

所以我正在制作一个 GUI,基本上用户将一系列数字输入到一个数组列表中,我正在尝试制作它,以便我可以获得添加的所有数字的总和。这就是我所拥有的:

sum = 0;
for(int i=0; i<numberlist.size(); i++){
    sum += numberlist.get(i);
}
Output.setText("The Sum of all the numbers is " + sum);
}

我收到一条错误消息:

inconvertable types. 
required : int 
found: java.lang.string

【问题讨论】:

  • 你认为这个错误意味着什么?
  • 您传递的是字符串而不是整数,请尝试更改代码以检索输入。请发布您的完整代码
  • GUI 通常需要 String 到 int 的转换 :)
  • 我认为我们不能比错误消息更好地解释它。它需要int。你给了它一个String

标签: java arrays arraylist integer


【解决方案1】:

我打赌你有一个ArrayList&lt;String&gt;。这意味着您的号码存储为String。所以你应该做的是使用ArrayList&lt;Integer&gt;,然后解析你用Integer.parseInt(yourinputstring)得到的字符串,然后将它添加到ArrayList中。

【讨论】:

  • Integer.parseInt(yourinputstring.trim()) 在无意或多余空格的情况下可以安全地避免 numberformatexception
【解决方案2】:

你可以像这样使用Integer.parseInt(String)

for (int i=0; i<numberlist.size(); i++){
  sum += Integer.parseInt(numberlist.get(i));
}

【讨论】:

  • 最好添加 trim() 以避免 numberformatexception ,所以 sum += Integer.parseInt(numberlist.get(i).trim());
【解决方案3】:

您的 GUI 似乎将用户输入作为字符串列表。

在这种情况下尝试:

sum+=Integer.parseInt(numberlist.get(i));

【讨论】:

    【解决方案4】:

    仅通过查看这个 sn-p,我会假设您必须将“numberlist.get(i)”转换为 int。

    sum = 0;
    for(int i=0; i<numberlist.size(); i++){
        sum += Integer.parseInt(numberlist.get(i));
    }
    Output.setText("The Sum of all the numbers is " + sum);
    }
    

    【讨论】:

      【解决方案5】:

      根据错误:

      不可转换的类型。 必需:整数 找到:java.lang.string

      您定义了一个包含输入数字的字符串数组列表,因此将这些数字相加 首先,您需要将数字字符串转换为数字,然后将它们相加:

      1. 如果值为整数,则尝试使用Integer.parseInt()Integer.valueOf()
      2. 如果值为 Double 则尝试使用 'Double.parseDouble()' 或 'Double.valueOf()'
      3. Long.parseLong()Long.valueOf()
      4. more details about number
      ArrayList<String> numberlist = new ArrayList<>();
      numberlist.add("1");
      numberlist.add("2");
      numberlist.add("3");
      int sum = 0;
      for (int i = 0; i < numberlist.size(); i++) {
          sum += Integer.valueOf(numberlist.get(i));
      }
      Output.setText("The Sum of all the numbers is " + sum);
      

      【讨论】:

        猜你喜欢
        • 2013-04-20
        • 2021-08-21
        • 2017-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-19
        • 1970-01-01
        • 2019-05-14
        相关资源
        最近更新 更多