-2
所以,这似乎相当简单的代码。但是当我运行这个,它给了我奇怪的输出。 首先,我将queries[] Array
的元素数存储在NumQ
变量中。然后,我通过从0到numQ-1循环来存储元素的值。它适用于任何其他情况。为什么这个JAVA代码不能按预期工作?
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要求的值)
这里是输出。
见,在queries[0]
,它存储空白值(蓝色选择为空白)。在queries[ 1 ]
,它存储所述第一输入端(它是要存储在索引0.And它存储索引1值在索引2等等。)
那么我的代码有什么问题。 在此先感谢:-)
当使用nextInt'和'nextLine'的'组合,提防仍然有一个需要处理的缓冲区(即新线)的内容。也许使用'nextLine'并在结果上使用另一个'Scanner'来获得'numQ' – MadProgrammer
我没有注意到它是与扫描仪相关的问题。并且从未发现它是重复的 – LalaByte
如果您输入4 5,则按Enter键,有用。它正在拾取输入值,空白并放入。 –