在 java 中包含 Scanner 中的空格

Including spaces in Scanner in java

我正在编写一个简单的代码,它从使用扫描仪的用户那里获取号码、姓名、姓氏。 但是,当用户输入其中包含 spaces 的姓名(两个或更多姓名)时,代码认为第一个 space 之后的字符串是姓氏。 我尝试使用 input.nextLine(); 在这种情况下,它完全跳过了名称,只从用户那里获取了姓氏。

Scanner input = new Scanner(System.in);
System.out.println("Enter number");
int num = input.nextInt();
System.out.println("Enter Name");
String name = input.next();
System.out.println("Enter Surname");
String surname = input.next();

试试这个:

Scanner input = new Scanner(System.in);
System.out.println("Enter number");
int num=input.nextInt();
input.nextLine(); // add this
System.out.println("Enter Name");
String name=input.nextLine();
System.out.println("Enter Surname");
String surname=input.nextLine();
System.out.println(num + " - " + name + " - " + surname);

样本input/output:

Enter number
1
Enter Name
user name
Enter Surname
sur name
1 - user name - sur name

使用sc.nextLine()代替sc.next()读取带空格的字符串