扫描仪没有看到空间后
我正在写一个程序,要求这个人的全名,然后采取这个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();