扫描仪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

上一篇: Scanner nextLine Java error

下一篇: Java Scanner doesn't wait for user input