扫描仪可以读取不同类型的输入

时间:2013-11-19 14:03:42

标签: java type-conversion java.util.scanner

我对java很新,我正在玩扫描仪。这是我的代码:

    System.out.print("Name? ");
    String name = s.nextLine();
    System.out.print("Height? ");
    double height = s.nextDouble();
    System.out.print("Haircolor? ");
    String haircolor = s.nextLine();
    System.out.print("Age? ");
    int age = s.nextInt();
    System.out.print("Job? ");
    String job = s.nextLine();

你可能已经看到了,我正在收到关于某个人的意见。现在的问题是,当我尝试读取double时它会给出InoutMismatchException。阅读此thread后,我将该行更改为double height = Double.parseDouble(s.nextLine());。这有效,但现在打印“Job?”后它不会停止。该程序只是没有阅读任何内容。

任何人都可以告诉我为什么会这样吗?还有为什么我得到这个例外?我只是怀疑扫描程序可能无法读取不同类型(double,string,int),并且在阅读String后无法“切换回”int 。但这似乎有点奇怪。

非常感谢您提前回答。

1 个答案:

答案 0 :(得分:1)

试试这个..

        System.out.print("Name? ");
        String name = s.nextLine();
        System.out.print("Height? ");
        double height = s.nextDouble();
        s.nextLine();
        System.out.print("Haircolor? ");
        String haircolor = s.nextLine();
        System.out.print("Age? ");
        int age = s.nextInt();
        s.nextLine();
        System.out.print("Job? ");
        String job = s.nextLine();