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