java - 与扫描器类混淆 -> nextLine()

标签 java java.util.scanner

我写了一个基本代码来读取不同的数据类型。但我无法输入字符串作为输入。我错过了什么?

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() 之后仍然有一个换行符,所以扫描器会读取下一行,但其中没有任何内容...

关于java - 与扫描器类混淆 -> nextLine(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31725979/

相关文章:

java - Gradle:如何在编译后但在将文件打包到 Jar 中之前添加自定义任务?

java - PathClassLoader 的实例是在何时何地在 android 源代码中创建的?

java - 验证输入并将其发送到文本文档

java - 扫描仪跳过我的输入机会

java - 从文本文件中读取整数

Java,用提供的数字填充数组

java - 如何将 json 对象存储到 hibernate 数据库字段

java - 如何使用适用于 Android 的 Google Fit API 查找步数?

java - 接口(interface)方法在其他类中不可见

java - java如何处理键盘上 "enter"键的输入