扫描仪将空白作为输入

时间:2015-09-10 07:14:26

标签: java java.util.scanner

我希望将两个字符串输入转换为字符串数组

String[] b = new String[n]; 

使用扫描仪,但扫描仪自动取空白值 b[0]。即。它会跳过第一个循环。

Scanner scn = new Scanner(System.in);
        int no = 0;
        int n = scn.nextInt();
        String[] b = new String[n];

        for (int j = 0; j < n; j++) {
            System.out.println("Enter the string");
            b[j] = scn.nextLine();
        }

输出就像

一样
2
Enter

Enter
abc

任何人都可以建议我为什么会出现这个问题吗?

1 个答案:

答案 0 :(得分:2)

这是因为nextInt()未读取您输入中的\n。然后由nextLine()

读取

更多解释,
nextInt()电话提示时输入号码。您键入一个数字并按 Enter 这使您的输入看起来像这样

  

10 \n

nextInt()仅读取10并遗漏\n

然后,您的nextLine()只会阅读\n

这解释了你的输出 您可以在nextLine()之后额外nextInt()获得预期的输出。

有关详情,请参阅this