我需要从控制台创建一个数组。
我做:
int forbiddenSequenceCount = scanner.nextInt();//1
String[] forbidden = new String[forbiddenSequenceCount];//2
for (int k = 0; k < forbiddenSequenceCount; k++) {//3
forbidden[k] = scanner.nextLine(); //4
}
但是当我输入forbiddenSequenceCount = 1
时,第4行没有等待我输入字符串。
它刚刚执行。
我做错了什么?
输入:
2
3 0 1 0
我需要将3 0 1 0
放到数组中。
答案 0 :(得分:2)
scanner.nextInt()
只读取 int
值'\n'
(输入,在您键入{{ 1}})在scanner.nextLine()
中消耗。
要解决此问题,请在int
之后立即添加scanner.nextLine()
,以便它消耗scanner.nextInt()
。
答案 1 :(得分:0)
你只需要想到这个:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
所以,在你的情况下,就是这样:
int forbiddenSequenceCount = scanner.nextInt();
String[] forbidden = new String[forbiddenSequenceCount];
for (int k = 0; k < forbiddenSequenceCount-1; k++) {
forbidden[k] = scanner.next();
}