抱歉,我刚刚开始,无法弄清楚这里出了什么问题。
// 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/