首页 > 解决方案 > 尝试扫描一个整数,然后是一个字符串

问题描述

我正在编写代码来读取一个整数值,可能是一个浮点数、一个双精度值,然后最后读取一个字符串。发生的情况是我输入了 int,然后按 enter,然后执行应该停止,直到我输入一个字符串。但是,当我按下回车键进入换行符时,我得到的输出只是数字,因为执行不会暂停让我输入字符串。这是怎么回事

尝试输入数字然后输入字符串,这有效。尝试输入数字后跟数字,这有效,尝试输入几个字符串,有效,但我无法让程序先读取一个数字,然后再读取一个字符串。

package test;
import java.util.Scanner;
public class Trying {


        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int i = scan.nextInt();
            double d=scan.nextDouble();
            String s=scan.nextLine();
            scan.close();

            System.out.println("String: \'" + s+"\'");
            System.out.println("Double: " + d);
            System.out.println("Int: " + i);
        }
    }

我没有得到字符串的输出

标签: java

解决方案


您的问题是一起使用Scanner.nextLine()and Scanner.nextDouble()/ Scanner.nextInt()。一起使用它们时应该小心,因为它们可能会导致意外行为。您可以阅读 Scanner 类的 JavaDocs 以获取更多详细信息。而不是int i = scanner.nextInt(); double d = scanner.nextDouble(),尝试使用double d = Double.parseDouble(scanner.nextLine())读取字符串并将其转换为双精度。


推荐阅读