你如何采取不同的数据类型的多个用户输入内的在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的不同线程中使用不同输入登录多个用户

如何在 ListView x:name 内的 Views 中访问 x:name?是不是可以设置不同形式的用户输入?

如何围绕多个轴和不同角度旋转 SCNNode?

理解PHP中的会话控制