1
System.out.print("\nEnter name: ");
String name = input.next();
System.out.println("Added: " + name);

当我输入像“Ciara Lim”这样的名字时,它只会显示“Ciara”而忽略“Lim”。我想我应该input.nextLine();像之前研究过的那样使用。但是当我将其更改为 时input.nextLine();,它不会读取我输入的内容,如下所示:

Enter name: Added: 

怎么了?:(

4

3 回答 3

1

空格被解释为输入之间的分隔符。

如果您想阅读姓氏和姓氏:

System.out.print("\nEnter name: (FirstName LastName)");
String name = input.next()+" "+ input.next();

如果您允许多个名字,这并不能解决问题...

于 2013-01-20T15:28:23.017 回答
0

使用input.nextLine()它的作品很好

Scanner#nextLine- 将此扫描器前进到当前行并返回被跳过的输入。完整的例子 -

    Scanner input = new Scanner(System.in);
    System.out.print("\nEnter name: ");
    String name = input.nextLine();
    System.out.println("Added: " + name);

输出 -

Enter name: Ciara Lim
Added: Ciara Lim
于 2013-01-20T15:33:00.440 回答
0

您应该使用 nextLine() 方法而不是使用 next()

public java.lang.String nextLine()

将此扫描器前进到当前行并返回被跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。位置设置为下一行的开头。

由于此方法继续搜索输入以查找行分隔符,因此如果不存在行分隔符,它可能会缓冲所有搜索要跳过的行的输入

于 2013-01-20T16:29:53.570 回答