扫描仪nextLine Java错误
我想用java中的程序来接受
1.Integer
2,双
3.String分别。 并显示上面的内容。
但我面临的问题是在我输入整数后加倍而不提示我输入String。 它直接显示值。 当我搜索到这个soln时,我已经知道了
scan.nextLine();
应该在我接受double值后使用。
谁能告诉我为什么要用这条线。 我阅读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);
}
}
根据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);
链接地址: http://www.djcxy.com/p/96071.html