从控制台读取字符串行

时间:2014-07-23 08:31:22

标签: java

我需要从控制台创建一个数组。

我做:

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放到数组中。

2 个答案:

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