我希望java中的程序接受
1.Integer
2.Double
3.String 分别 。 并显示以上内容。
但是我遇到的问题是在我输入整数和双重之后它没有提示我输入String。它直接显示值。 当我搜索到这个时,我知道了
scan.nextLine();
在接受双值后,应该使用。
任何人都可以告诉我为什么要使用这一行。 我读了nextLine的文档。但我不明白。
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
// scan.nextLine(); **Why should I write this ??**
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
答案 0 :(得分:2)
根据nextLine()
javadoc:
使此扫描程序超过当前行并返回该输入 被跳过了。此方法返回当前行的其余部分, 排除末尾的任何行分隔符。该职位设定为 下一行的开头。
输入double值后,nextLine()
读取包含双精度数的行的余数。这就是为什么你需要另一个nextLine()
输入字符串。
使用next()
可以解决您的问题:
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.next();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);