使用nextInt和nextLine()时出现问题

时间:2014-09-28 20:49:29

标签: java int line next

不要让我说出我的名字,但这个时代的确很适合。 我知道我可以改变陈述的顺序,但还有另一种方法吗?

import java.util.Scanner;

public class ScannerErr2
{
  public static void main(String [] args)
  {
    Scanner keyboard= new Scanner(System.in);
    String name;
    int    age;

    System.out.print("Enter your age : ");
    age= keyboard.nextInt();
    System.out.print("Enter your name: ");
    name= keyboard.nextLine();

    System.out.println("Age : "+age);
    System.out.println("Name: "+name);
  }
}

1 个答案:

答案 0 :(得分:3)

您的问题是,下一个int不会考虑名称部分输入中的新行字符。因此,名称将返回为空白。

您可以通过两种方式更改代码:

System.out.print("Enter your age : ");
age = keyboard.nextInt();
keyboard.nextLine();
System.out.print("Enter your name: ");
name = keyboard.nextLine();

System.out.print("Enter your age : ");
age = Integer.parseInt(keyboard.nextLine().trim());
System.out.print("Enter your name: ");
name = keyboard.nextLine();

我个人喜欢第二种方式。