无法打印第0个数组元素

Ark*_*jee 5 java arrays

先生,我正在尝试打印阵列的第0个元素,但我不能.这是我的代码

import java.util.Scanner;
public class prog3
{
    public static void main (String[] args){
        Scanner input = new Scanner(System.in);
        int size = input.nextInt();
        String arr[] = new String[size];

        for (int i=0; i<size; i++){
            arr[i]= input.nextLine();
        }

        System.out.print(arr[0]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我试图打印arr[0]其返回空白但当我打印arr[1]它时返回第0个元素值.你能帮我找到我的错误吗?

kai*_*kai 5

更改

arr[i]= input.nextLine();
Run Code Online (Sandbox Code Playgroud)

arr[i]= input.next();
Run Code Online (Sandbox Code Playgroud)

它的工作原理.这是因为nextLine()读取空格然后看起来像是arr[0]空的.你可以看到这个,因为如果size是3,你只能输入两次.有关扫描仪的更多信息,请参见http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html


vik*_*eve 2

试试这个伙伴:

    input.nextLine();   // gobble the newline
    for (int i = 0; i < size; i++) {
        arr[i] = input.nextLine();
    }
Run Code Online (Sandbox Code Playgroud)