在我当前的程序中,一种方法要求用户输入产品描述作为String
输入。但是,当我稍后尝试打印此信息时,只显示String
的第一个单词。可能是什么原因造成的?我的方法如下:
void setDescription(Product aProduct) {
Scanner input = new Scanner(System.in);
System.out.print("Describe the product: ");
String productDescription = input.next();
aProduct.description = productDescription;
}
因此,如果用户输入的是“带有橙味的苏打汽水”,System.out.print
只会产生“闪闪发光”。
任何帮助将不胜感激!
答案 0 :(得分:26)
将next()
替换为nextLine()
:
String productDescription = input.nextLine();
答案 1 :(得分:10)
使用input.nextLine();
代替input.next();
答案 2 :(得分:3)
javadocs for Scanner回答您的问题
扫描仪使用分隔符模式将其输入分解为标记, 默认情况下匹配空格。
您可以通过执行类似
的操作来更改扫描程序正在使用的默认空白模式Scanner s = new Scanner();
s.useDelimiter("\n");
答案 3 :(得分:1)
input.next()接受输入字符串的第一个以whitsepace分隔的单词。因此,通过设计,它可以完成您所描述的内容。试试input.nextLine()
。
答案 4 :(得分:1)