无法打印第0个数组元素

时间:2013-12-11 13:09:11

标签: 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]);
    }
}

当我尝试打印arr[0]时它的返回空白但是当我打印arr[1]时它返回第0个元素值。你能不能帮我找到我的错误。

3 个答案:

答案 0 :(得分:5)

更改

arr[i]= input.nextLine();

arr[i]= input.next();

它有效。这是因为nextLine()读取空格,然后看起来arr[0]为空。你可以看到这个,因为如果size是3,你只能输入两次。有关扫描仪的详情,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html:)

答案 1 :(得分:2)

试试这个伙伴:

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

答案 2 :(得分:2)

更正后的代码:在input.nextLine();

之后加入input.nextInt()
import java.util.Scanner;
public class prog3{
  public static void main (String[] args){
    Scanner input = new Scanner(System.in);
    int size = input.nextInt();
    input.nextLine();
    String arr[] = new String[size];
    for (int i=0; i<size; i++){
    arr[i]= input.nextLine();
    }
         System.out.print(arr[0]);
  }

}

输入

2
45
95

<强>输出

45

<强>解释

问题在于 input.nextInt()命令,它只读取int值。因此,当您继续使用 input.nextLine()进行阅读时,您会收到“\ n”Enter键。所以要跳过这个,你必须添加 input.nextLine()Scanner issue when using nextLine after nextXXX