nextInt()读取空格或回车前的整数
nextLine()读取回车前的一行,空格不会中断读取
陷阱代码如下:
public class nextInt {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入字符串数组的大小:");
int num=scanner.nextInt();
System.out.println("请输入数组的元素:");
String[] arr=new String[num];
for(int i=0;i<num;i++) {
arr[i]=scanner.nextLine();
}
System.out.println(Arrays.toString(arr));
}
}
我们的意图是第一次输入确定数组长度为5,第二次输入依次把5行数据装进数组。
第一种输入方法:
这种方法输入5以后回车,这一次回车占用了一次nextLine()的回车,所以后续仅输入四次2就结束了。数组的第一个元素为空,因为第一次回车的前面和5的后面之间什么也没有。
第二种输入方法:
这种方法输入5以后空格,这个空格和回车一样能表示nextInt()的读取已经结束,所以后续的内容都属于第一次nextLine()。可以看到数组正常装入了五个元素。