扫描仪输入字符串没有空格?

时间:2014-11-02 06:37:17

标签: java arrays class object

我想知道如何做到这一点。

我被告知使用kb.nextLine()而不是kb.next(),但这只会导致在运行程序时跳过输入。

String address;
student.setAddress(address = kb.nextLine()); 
然后告诉我这样做是为了解决它:

student.SetAddress(String address = kb.nextLine());

但是我收到一个错误: String cannot be resolved into a variable" "Syntax error on token "address"

1 个答案:

答案 0 :(得分:5)

你的第二个例子是错误的。你的第一个例子看起来没问题。但不是很好。我假设您一直在使用nextInt()nextDouble()之类的内容。它们留下一个尾随的新行,所以你需要消耗它。

kb.nextLine(); // <-- consume empty trailing line.
String address; 
student.setAddress(address = kb.nextLine()); //<-- reads line.

如果您不需要本地地址副本,

kb.nextLine(); // <-- consume empty trailing line.
student.setAddress(kb.nextLine()); //<-- reads line.

正如Scanner.nextLine() Javadoc所说,

  

使此扫描程序超过当前行并返回跳过的输入。