【发布时间】:2014-01-17 22:05:59
【问题描述】:
在下面的代码中,在第一个 for 循环的第一次迭代中,box[a] 被自动分配了一个空值。
其余的迭代都很好(接受用户输入)。只有第一个存在自动分配空值的问题。
有人知道为什么会这样吗?谢谢。
package testing;
import java.util.Scanner;
public class Testing {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Scanner in2 = new Scanner(System.in);
int boxNumber;
boxNumber = in.nextInt();
String[] boxes = new String[boxNumber];
System.out.println(boxNumber);
for(int a=0; a <= boxes.length - 1; a++){
boxes[a] = in.nextLine();
System.out.println(boxes[a]);
}
int packageNumber;
packageNumber = in2.nextInt();
String[] packages = new String[packageNumber];
System.out.println(packageNumber);
for(int n=0; n <= packageNumber - 1; n++){
packages[n] = in.nextLine();
System.out.println(packages[n]);
}
}
}
【问题讨论】:
-
在
in.nextInt()之后添加in.nextLine();以使用'\n'。in2.nextInt()也一样。这将在之后工作(还有为什么要使用两个扫描仪?)。 -
同时删除第二个扫描器对象 (
in2)。它不是必需的,在某些情况下可能会有害。