猿问

为什么例子中用Scanner对象,无法给数组第一个元素赋值?

/*如下所示程序,定义了一个String类型的color数组,数组的大小为num(键盘输入),然后用Scanner对象给color赋值,可是发现,当
输入num后,开始输color的元素,0坐标的值永远是“”,无法输入。num后面输入的字符串,直接赋值给了坐标为1的数组元素。
而不是给0号元素?
import java.util.Scanner;

public class demo2 {
	public static void main(String[] args) {
		Scanner reader = new Scanner(System.in);
		int num = reader.nextInt();
	
		String[] color = new String[num];
        for(int i=0;i<num;i++){
        	color[i]=reader.nextLine();
        }
        System.out.println(color[0]);
        System.out.println(color[1]);
	}
}
慕粉3942243
浏览 1982回答 3
3回答

Crafon

这个问题我也遇到过!后来解决了,原因是因为输入完前面数字后按了回车,所以后面的再次输入字符串的就把回车读入了,只要在前一次输入完数字后吃掉回车就行了,可以写一句 reader.nextLine();
随时随地看视频慕课网APP

相关分类

Java
我要回答