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

Tes*_*est 1 java arrays class object

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

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

String address;
student.setAddress(address = kb.nextLine()); 
Run Code Online (Sandbox Code Playgroud)

然后告诉我这样做来解决它:

student.SetAddress(String address = kb.nextLine());
Run Code Online (Sandbox Code Playgroud)

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

Ell*_*sch 5

你的第二个例子是错的.你的第一个例子看起来没问题.但不是很好.我假设你已经使用类似nextInt()nextDouble().它们会留下一个尾随的新行,因此您需要使用它.

kb.nextLine(); // <-- consume empty trailing line.
String address; 
student.setAddress(address = kb.nextLine()); //<-- reads line.
Run Code Online (Sandbox Code Playgroud)

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

kb.nextLine(); // <-- consume empty trailing line.
student.setAddress(kb.nextLine()); //<-- reads line.
Run Code Online (Sandbox Code Playgroud)

正如Scanner.nextLine()Javadoc所说,

使此扫描器前进超过当前行并返回跳过的输入.