Java Scanner为什么我的代码中的nextLine()被跳过?

时间:2011-06-09 07:58:27

标签: java java.util.scanner

    Scanner kb = new Scanner(System.in);
    System.out.println("Inserting L");
    int L = kb.nextInt();   
    System.out.println("Inserting N");
    int N = kb.nextInt();
    System.out.println("Inserting x");
    String x = kb.nextLine();
    System.out.println(x);
    System.out.println("You inputed L,N,x");

为什么此代码中没有nextLine()的提示?

2 个答案:

答案 0 :(得分:2)

使用:

String x = kb.next();

而不是kb.nextLine()

这是因为nextInt()只读取数字,而不是数字后面的行尾或任何内容。当你调用nextLine()时,它会读取同一行的剩余部分,而不是等待输入。

理想情况下,您应该在kb.nextLine()的代码后面调用nextInt(),以忽略该行的其余部分。

答案 1 :(得分:0)

Scanner kb = new Scanner(System.in);
    System.out.println("Inserting L");
    int L = kb.nextInt();   
    System.out.println("Inserting N");
    int N = kb.nextInt();
    System.out.println("Inserting x");
    String x = kb.next();
    System.out.println(x);
    System.out.println("You inputed L,N,x");

尝试这个...