你如何采取不同的数据类型的多个用户输入内的在Java循环?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你如何采取不同的数据类型的多个用户输入内的在Java循环?相关的知识,希望对你有一定的参考价值。
我想要提示用户输入一个字符串,其将被存储在一个字符串数组,接着所输入的INT,其将被放置到一个int数组。
我运行到其中被印刷在第一行中的问题,但不提示用户输入一个字符串。然后,第二打印语句立即打印,且用户只能够键入一个int。
到目前为止,我有:
int i, n = 10;
String[] sentence = new String[1000];
int[] numbers = new int[1000];
for(i = 0; i < n; i++)
{
System.out.println("Enter String" + (i + 1) + ":");
sentence[i] = scan.nextLine();
System.out.printf("Enter int " + (i + 1) + ":");
numbers[i] = scan.nextInt();
}
作为输出我得到:
Enter String 1:
Enter int 1:
在这里,你可以输入一个int,并存储到int数组。但是你不能输入的字符串数组的字符串。
普莱斯帮助。
答案
把scan.nextLine()是这样的:
for(i = 0; i < n; i++){
System.out.println("Enter String" + (i + 1) + ":");
sentence[i] = scan.nextLine();
System.out.printf("Enter int " + (i + 1) + ":");
numbers[i] = scan.nextInt();
scan.nextLine();
}
另一答案
这个问题是因为nextInt()
方法造成的。
请告诉我这里发生的是,nextInt()
方法消耗用户输入整数,但不是当您按下回车键,其创建用户输入的结束换行符。
所以,当你按下输入整数后进入,nextLine()
下次调用消耗这是不通过nextInt()
方法循环的最后一次迭代所消耗的新行字符。这就是为什么它跳过String
中环和简化版,等待下一次迭代的输入,为用户输入String
解
您可以通过电话nextLine()
以后打电话nextInt()
消耗换行符
for(i = 0; i < n; i++)
{
System.out.println("Enter String" + (i + 1) + ":");
sentence[i] = scan.nextLine();
System.out.printf("Enter int " + (i + 1) + ":");
numbers[i] = scan.nextInt();
scan.nextLine(); // <------ this call will consume the new line character
}
以上是关于你如何采取不同的数据类型的多个用户输入内的在Java循环?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIScrollView 内的 UIButton 传递延迟滚动手势?
如何使用CSV数据集配置在Jmeter的不同线程中使用不同输入登录多个用户