java - 带用户输入的 For 循环。输出以空格开头

标签 java loops for-loop

抱歉,我刚刚开始,无法弄清楚这里出了什么问题。

// Declare string to hold numbers output
        String lottoNum = "";

        // Declare scanner variable
        Scanner scan1 = new Scanner(System.in);

        // Ask user for numbers
        System.out.println("To buy a ticket we need your numbers...");

        // Set up loop for 6 numbers
        for (int i = 1; i<=6; i++)
        {
            System.out.println("Please enter lotto number " + i);
            String num = scan1.nextLine();
            lottoNum = lottoNum + ", " + num;
        }
        System.out.println(lottoNum);

它按预期循环,询问乐透号码 1 到 6。但最后,当它返回包含所有 6 个号码的集合的lottoNum 时,它以“,”开头。

Please enter lotto number 5
28
Please enter lotto number 6
19
, 22, 12, 4, 38, 28, 19

为什么要以这个“,”开头?我可以阻止它把它放在开头吗?

最佳答案

创建新字符串并不是最佳选择。我建议将所有数字收集到一个列表中,然后使用内置的 String.join 方法。

当然,在解析数字时最好使用scanner.nextInt()而不是scanner.nextLine()。

    // Declare scanner variable
    Scanner scan1 = new Scanner(System.in);

    // Ask user for numbers
    System.out.println("To buy a ticket we need your numbers...");

    List<Integer> nums = new ArrayList<Integer>();
    // Set up loop for 6 numbers
    for (int i = 1; i<=6; i++)
    {
        System.out.println("Please enter lotto number " + i);
        nums.add(scan1.nextInt());
    }
    System.out.println(String.join(',', nums));

关于java - 带用户输入的 For 循环。输出以空格开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46402819/

相关文章:

python - 迭代列表时更改列表的最佳方法

java - 如何从内循环跳转到外循环

java - 有没有办法在 Android 中创建堆栈溢出 "Tags"EditText/Input 字段?

Java - 使用多个完成阶段来形成一个响应 json

java - 使用HttpClient进行登录认证

R 有效地填充向量

java - 以优雅的方式检查两个参数是否为 null

c# - 检查 list<t> 是否包含任何其他列表

java - 如何更改使用外循环和内循环创建的网格上的下一列?

php - 我想知道关于数组的 for 循环构造