2017-09-25 63 views
0

道歉,我开始了,并不能解决这里出了什么问题。用户输入的循环。输出开始的空间

// 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 

为什么从这个“,”开始?我能阻止它在开始时放置它吗?

+2

它开始于此,因为这实际上是您添加的第一件事 - “lottoNum”的初始值是一个空字符串,然后您要做的第一件事是分配该空字符串的连接结果,然后是“,”和第一个数字。 – CBroe

+0

由于第一次通过,你将“,”添加到空字符串 – jr593

+0

当你第一次运行for循环时,'lottoNum'是'“”',因此将被设置为'“,22”'通过这行' lottoNum = lottoNum +“,”+ num;'。 – Henry

回答

0

添加条件:

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

它将在每个号码的末尾添加,除了最后一个号码。

+0

我认为这对我而言是最容易理解的。非常感谢! – Stephen

1

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

现在对他来说可能太难了。 – apocalypse

0

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

然后要求for循环中的数字2,3,4,5和6。

0

也许你会喜欢用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 

您可以使用StringJoiner构造与3个参数 - 你可以用它来定义前缀和后缀。