说我有Scanner方法,之后我想打印用户输入。
以此代码为例:
String randomWords;
Scanner kb = new Scanner(System.in);
System.out.print("Please enter two words separated: ");
randomWords = kb.next();
System.out.println(randomWords);
如果输入的两个单独的单词是
hello world
只有
hello
打印
这是为什么?如何打印包含空格的两个单词?
谢谢。
答案 0 :(得分:5)
改为使用Scanner#nextLine(),
此方法返回当前行的其余部分,不包括任何行 最后的分隔符。
randomWords = kb.nextLine();
Scanner#next()根据分隔符读取下一个完整的令牌。
查找并返回此扫描仪的下一个完整令牌。一个 完整标记之前和之后是匹配的输入 分隔符模式
由于扫描仪的默认分隔符为空格,您应使用Scanner#useDelimiter(str)明确定义扫描仪的分隔符。
如果您使用\n
下一行作为分隔符,那么您的电流代码将起作用。
Scanner kb = new Scanner(System.in).useDelimiter("\n");
System.out.print("Please enter two words separated: ");
randomWords = kb.next();
System.out.println(randomWords);
答案 1 :(得分:1)
使用Scanner.nextLine()方法读取换行符(非包含)。
randomWords = kb.nextLine();
答案 2 :(得分:1)
public static void main(String[] args) {
String randomWords;
Scanner kb = new Scanner(System.in);
System.out.print("Please enter two words separated: ");
randomWords = kb.nextLine();
System.out.println(randomWords);
}