当前位置: 代码迷 >> java >> 与扫描仪类混淆-> nextLine()
  详细解决方案

与扫描仪类混淆-> nextLine()

热度:44   发布时间:2023-07-17 20:51:55.0

我已经写了一个基本代码来读取不同的数据类型。 但是我不能输入字符串作为输入。 我想念什么?

public class Main {

public static void main(String[] args) {
    Scanner read = new Scanner(System.in);
    int integer = read.nextInt();
    double Double = read.nextDouble();
    String string = read.nextLine();
    System.out.printf("String: %s\nDouble: %f\nInt: %d",string,Double,integer);
}
}

您必须“吃掉”双精度字符剩下的换行符。

Scanner read = new Scanner(System.in);
int integer = read.nextInt();
double Double = read.nextDouble();
read.nextLine();
String string = read.nextLine();
System.out.printf("String: %s\nDouble: %f\nInt: %d",string,Double,integer);

问题是在nextDouble()之后仍然有换行符,因此扫描程序会读取下一行没有内容的下一行...