简体   繁体   English

在 java 的 Scanner 中包含空格

[英]Including spaces in Scanner in java

I am writing a simple code that takes number,name,surname from the user with scanner.我正在编写一个简单的代码,它使用扫描仪从用户那里获取数字、姓名、姓氏。 But when user enters name with spaces in it(two or more names) the code thinks string after the first space is surname.但是当用户输入带有空格的名称(两个或多个名称)时,代码认为第一个空格之后的字符串是姓氏。 I tried using input.nextLine();我尝试使用input.nextLine(); in that case it skipped name completely and took only surname from the user.在这种情况下,它会完全跳过名称,只从用户那里获取姓氏。

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();

Try this:尝试这个:

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);

Sample input/output:样本输入/输出:

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

Use sc.nextLine() instead of sc.next() to read String with spaces使用sc.nextLine()而不是 sc.next( )读取带空格的字符串

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM