Java 扫描仪将空白作为输入

Java 扫描仪将空白作为输入,java,java.util.scanner,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++

我想把两个字符串输入到一个字符串数组中

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();
        }

有人能告诉我为什么会出现这个问题吗?

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


更多解释,
当您在
nextInt()调用提示下输入号码时。您键入一个数字,然后按Enter键,这会使您的输入看起来像这样

10
\n

nextInt()

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

这解释了您的输出。
您可以通过在
nextLine()
之后添加一个额外的
nextLine()
来获得预期的输出


请参阅了解更多信息。

@vineethPrabhakaran欢迎您!
2
Enter

Enter
abc