Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算“a”的和;“字符串”;解析JAVA后的列表_Java - Fatal编程技术网

计算“a”的和;“字符串”;解析JAVA后的列表

计算“a”的和;“字符串”;解析JAVA后的列表,java,Java,我想计算列表中内容的总和。这是我的代码: import java.util.ArrayList; import java.util.Scanner; public class demo { public static void main(String[] args) { int sum = 0; int i = 0; ArrayList nummer = new ArrayList(); // make new list

我想计算列表中内容的总和。这是我的代码:

import java.util.ArrayList;
import java.util.Scanner;

public class demo {

    public static void main(String[] args) {
        int sum = 0;
        int i = 0;
        ArrayList nummer = new ArrayList(); // make new list
        while (true) {
            Scanner input = new Scanner(System.in); // start scanner

            System.out.print("Voer uw naam in: ");

            String naam = input.nextLine(); // scanner waiting for input + enter
            if (naam.equals("0")) {
                System.out.println("Wrong, exit!");
                input.close();

                 for (Object item : nummer) { // foreach-loop
                     System.out.print(item + "\n");
                     i = Integer.parseInt((String) item);
                     }
                 System.out.println(sum = i);
                break;
            } else { 
                nummer.add(naam);
                continue;
            }

        }



    }
}

如您所见,用户可以输入数字,但它将保存为字符串,因此我对其进行了分析。但在那之后,我试着进行计算,它只需要列表中的最后一项。是否有方法获取所有输入以计算总和?

i=Integer.parseInt((字符串)项)行之后,您需要将i添加到您的总和中。因此,在这之后添加以下行:

sum=sum+i

然后把总和打印成


System.out.println(总和)

下面是代码的修改部分。正如其他人指出的,您应该只初始化扫描仪一次。此外,continue语句在您使用它的地方是多余的,因为循环仍将继续

    int sum = 0;
    int i = 0;
    ArrayList nummer = new ArrayList(); // make new list
           Scanner input = new Scanner(System.in); // start scanner
    while (true) {
        System.out.print("Voer uw naam in: ");

        String naam = input.nextLine(); // scanner waiting for input + enter
        if (naam.equals("0")) {
            System.out.println("Wrong, exit!");
            input.close();

             for (Object item : nummer) { // foreach-loop
                 System.out.print(item + "\n");
                 i = Integer.parseInt((String) item);
                                     sum += i;
                     }
             System.out.println(sum);
            break;
        } else { 
            nummer.add(naam);
        }
    }

您确定
sum=i
表达式吗?如果您使用的是Java 1.7+,那么您的ArrayList应该使用泛型类型。此外,您应该只实例化一次Scanner对象。将其移到while循环之外。Nevermind发现问题:i+=Integer.parseInt((字符串)项);我必须在=xDbtw之前添加+:您可以使用scanner.nextInt()方法。我想您的意思是写sum+=I,我非常感谢您