为什么这个JAVA代码不能按预期工作?

时间:2017-04-03 05:28:45

标签: java arrays java.util.scanner

所以,这看起来相当简单。但是当我运行它时,它给了我奇怪的输出。 首先,我将queries[] Array中元素的数量存储在NumQ变量中。然后,我通过循环从0到numQ-1来存储元素的值。它适用于任何其他情况。

int numQ=sc.nextInt();
  String queries[]=new String[numQ];
    for(int i=0;i<numQ;i++){

        queries[i]=sc.nextLine();
    }
System.out.println(queries[0]);
System.out.println(queries[1]);
System.out.println(queries[2]);

就我而言,输入是 - (注意它甚至不要求索引2的值.numQ是3)

enter image description here

这是输出。

Output of the code

请参阅queries[0],它存储空白值(蓝色选择为空白)。在queries[ 1 ],它存储第一个输入(存储在索引0处。它存储索引索引2处的1个值,依此类推。)

那么我的代码有什么问题。 在此先感谢: - )

1 个答案:

答案 0 :(得分:1)

我认为sc是扫描程序对象。方法nextInt()仅在换行前扫描int部分。因此,您必须使用sc.nextLine()跳过换行符

int numQ=sc.nextInt();
sc.nextLine();

String queries[]=new String[numQ];
for(int i=0;i<numQ;i++){
    queries[i]=sc.nextLine();
}
System.out.println(queries[0]);
System.out.println(queries[1]);
System.out.println(queries[2]);