计算一个"字符串的总和"解析JAVA后的列表

时间:2018-02-13 18:56:46

标签: 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
        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;
            }

        }



    }
}

如您所见,用户可以输入数字但它会保存为字符串,因此我对其进行了解析。但在那之后我尝试进行计算只需要列表的最后一项。有没有办法把所有输入都用来计算总和?

2 个答案:

答案 0 :(得分:1)

在行i = Integer.parseInt((String) item);之后,您需要将i添加到您的总和中。因此,在此之后添加以下行:

sum= sum + i;

然后只需将总和打印为

System.out.println(sum);

答案 1 :(得分:1)

以下是代码的修改部分。正如其他人所指出的,你应该只初始化一次扫描仪。此外,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);
        }
    }