字符串输入不会打印空格?

时间:2013-01-20 15:25:22

标签: java string input

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: 

怎么了? :(

3 个答案:

答案 0 :(得分:1)

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

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

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

如果您允许多个FirstName ...

,则无法解决问题

答案 1 :(得分: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

答案 2 :(得分:0)

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

public java.lang.String nextLine()

使此扫描程序超过当前行并返回跳过的输入。此方法返回当前行的其余部分,不包括末尾的任何行分隔符。该位置设置为下一行的开头。

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