所以我有以下输入:
3
3.0
How are you doing
Run Code Online (Sandbox Code Playgroud)
我需要将它们存储到以下变量中:
int myInt
double myDouble
String myString
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
myInt = scan.nextInt();
myDouble = scan.nextDouble();
myString = scan.nextLine();
Run Code Online (Sandbox Code Playgroud)
这适用于整数和Double值,但String给了我一个NULL值.
然后我尝试了这个:
myInt = scan.nextInt();
myDouble = scan.nextDouble();
myString = scan.next();
Run Code Online (Sandbox Code Playgroud)
它再次适用于前两个,但字符串只保留第一个字.我怎样才能读完整个字符串?我需要设置循环吗?
nextLine()有点令人困惑的名字.它没有给你下一行,但会读到它遇到的下一个换行符.
在调用nextDouble()之后,扫描程序位于新行之后3.0但在新行之前,因此nextLine()读取到该行的末尾并为您提供空结果.
您可以使用skip(String)以后跳过换行符3.0,或者只是调用nextLine()一次并扔掉它:
myInt = scan.nextInt();
myDouble = scan.nextDouble();
scan.nextLine(); // Skip the remainder of the double line
myString = scan.nextLine();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5038 次 |
| 最近记录: |