我希望将两个字符串输入转换为字符串数组
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
任何人都可以建议我为什么会出现这个问题吗?
答案 0 :(得分:2)
这是因为nextInt()
未读取您输入中的\n
。然后由nextLine()
更多解释,
在nextInt()
电话提示时输入号码。您键入一个数字并按 Enter 这使您的输入看起来像这样
10
\n
nextInt()
仅读取10
并遗漏\n
。
然后,您的nextLine()
只会阅读\n
。
这解释了你的输出
您可以在nextLine()
之后额外nextInt()
获得预期的输出。
有关详情,请参阅this。