Java 对于带有用户输入的循环。输出以空格开头

Java 对于带有用户输入的循环。输出以空格开头,java,loops,for-loop,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 tick

抱歉,我刚开始,不知道这里出了什么问题

// 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);
为什么从这个开始呢?我可以阻止它将此放在开头吗?

添加条件:

lottoNum = lottoNum + num;
if (i < 6) lottoNum = lottoNum + ", ";

它将在每个数字的末尾添加,最后一个数字除外。

创建新字符串不是最佳选择。我建议将所有NUM收集到一个列表中,然后使用内置的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));

您应该尝试在for循环之前保存第一个数字


然后在for循环中输入数字2、3、4、5和6。

也许您希望使用StringJoiner类来获得所需的行为:

StringJoiner sj = new StringJoiner(", "); //argument passed will separate passed objects
sj.add(String.valueOf(12));
sj.add(String.valueOf(24));
sj.add(String.valueOf(50));
System.out.println(sj);
输出:

12, 24, 50

您可以使用带3个参数的StringJoiner构造函数-您也可以使用它来定义前缀和后缀。

它从这开始,因为这实际上是您添加的第一件事-lottoNum的初始值是一个空字符串,然后您要做的第一件事是分配该空字符串的串联结果,然后,和第一个数字。因为第一次通过时,当for循环第一次运行时,将添加到空字符串中,lottoNum是,因此将通过这一行设置为,22 lottoNum=lottoNum+,+num;。太好了,谢谢大家。我知道我错在哪里了。现在对他来说可能太难了。我想用我现在的知识,这对我来说是最容易理解的。非常感谢!
12, 24, 50