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