使用值

时间:2017-05-10 20:08:52

标签: java arrays

我是Java新手,我正在通过编写一些代码来学习,看看会发生什么。这就是我昨天所做的:

public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("size of array:");
    int size = sc.nextInt();

    String tab[] = new String[size];
    System.out.println(tab.length);
    System.out.println("type your words:");
    for(int i = 0; i < tab.length; i++) {
        tab[i] = sc.nextLine();
    }
    for(int i = 0; i < tab.length;i++){
        System.out.println(tab[i] + " " +i);
    }
}

这就是我得到的输出:

size of array:
3
3
type your words:
a
b
0
a 1
b 2

我的问题是为什么我只能输入两个值并从索引1开始? 我知道我可以使用ArrayList,如果数组的维度将被硬编码,一切正常。我不是在寻找工作代码,而是在解释为什么会这样。 抱歉英文不好。

1 个答案:

答案 0 :(得分:3)

sc.nextInt()只需阅读int - 您输入的部分内容。不读取行尾字符。这意味着您第一次调用sc.nextLine()时会读取行尾字符而不是您要提供的新输入。

sc.nextLine()之后添加sc.nextInt(),您的代码应按预期工作