扫描仪没有看到空间后

我正在写一个程序,要求这个人的全名,然后采取这个input,并将其反转(即John Doe – Doe,John)。 我开始试图获得input,但它只是获得第一个名字。

这是我的代码:

public static void processName(Scanner scanner) { System.out.print("Please enter your full name: "); String name = scanner.next(); System.out.print(name); } 

更改为String name = scanner.nextLine(); 而不是String name = scanner.next();

在这里查看更多文档 – next()和nextLine()

尝试replace您的代码

 String name = scanner.nextLine(); 

代替

 String name = scanner.next(); 

next()只能读取input直到space 。 它不能读取由space分隔的两个单词。 另外, next()在读取input之后将光标放在同一行中。

nextLine()读取包含单词之间的space (即,直到行\n结尾)的input。 一旦input被读取, nextLine()将光标定位在下一行。

Scanner文档:

Scanner使用分隔符模式将input分为令牌,缺省情况下符合空格。

public String next()

查找并返回此扫描程序中的下一个完整标记。 一个完整的标记前后有与分隔符模式匹配的input。

这意味着默认分隔符模式是“空白”。 这在空间分割你的文字。 使用nextLine()获取整行。

scanner.next(); 只需要下一个字。 scanner.nextLine(); 应该工作。 希望这可以帮助

尝试使用这个

 String name = scanner.nextLine();