试图扫描整数,然后扫描一个字符串



im编写代码以读取整数值,也许是float,double,然后最后读取字符串。发生的事情是我输入int,按Enter,之后执行应停止直到输入字符串。但是,一旦我按Enter进入NewLine,我就会获得数字,因为执行不会暂停输入字符串。发生了什么

尝试输入数字,然后尝试使用字符串。尝试输入数字,然后用数字进行操作,尝试输入几个字符串,但我无法让程序读取一个数字,然后读一个字符串。

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);
        }
    }

我没有字符串的输出

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

您需要在接受字符串输入之前清除扫描仪中的缓冲区,所以只需写

scan.nextLine();

之前
String s=scan.nextLine();

它将起作用

相关内容

最新更新