Java扫描程序错误:线程中出现异常;“主要”;java.util.NoSuchElementException

Java扫描程序错误:线程中出现异常;“主要”;java.util.NoSuchElementException,java,java.util.scanner,Java,Java.util.scanner,我刚开始我的大学java课程,在Scanner类中不断出现这个错误 import java.util.Scanner; public class InchConversion { public static void main (String[] args) { Double inches, centimeters; Scanner fromKeyboard = new Scanner(System.in); System.

我刚开始我的大学java课程,在Scanner类中不断出现这个错误

import java.util.Scanner;

public class InchConversion
{
    public static void main (String[] args)
    {   
        Double inches, centimeters;
        Scanner fromKeyboard = new Scanner(System.in);
        System.out.println("Enter Value in Inches");
        inches = fromKeyboard.nextDouble();
        centimeters = inches*2.54;
        System.out. println(inches + " inches is equal to " + centimeters + " centimeters.");
    }
}
我经常遇到的错误是:

  Compiling InchConversion.java.......
-----------OUTPUT-----------
Enter Value in Inches
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextDouble(Scanner.java:2413)
    at InchConversion.main(InchConversion.java:11)
[Finished in 0.8s with exit code 1]

例如,您需要使用3.0作为输入,因为您明确地告诉扫描器期望浮点值,而在Java中,浮点需要小数,即使它是整数。 修井将是:

double inches = Double.parseDouble(fromKeyboard.nextLine());
通过这种方式,您可以告诉扫描器解析当前行上的第一个字符串值,该值也可以解释为double(在这种情况下,java编译器不关心该数字是否没有小数,而是在解析过程中添加它)。因此,如果输入20,它将自动调用add decimal和
inches=20.0
。但是如果您想要
inches=20.1
,您仍然必须输入20dot1。但至少它摆脱了非直观和外来的20.0输入

编辑:我用我的修复程序尝试了你的代码,它对我来说非常好

public static void main (String[] args) {   
    Double inches, centimeters;
    Scanner fromKeyboard = new Scanner(System.in);
    System.out.println("Enter Value in Inches");
    inches = Double.parseDouble(fromKeyboard.nextLine());
    centimeters = inches*2.54;
    System.out.println(inches + " inches is equal to " + centimeters + " centimeters.");
}

如果输入1,则输出为
1.0英寸等于2.54厘米。

它不会提示输入。视窗10。很高兴知道它工作正常,你认为这是PC的问题吗?编译InchConversion.java-----------输出----------在线程“main”java.util.NoSuchElementException中以英寸为单位输入值异常:在InchConversion.main(InchConversion.java:11)的java.util.Scanner.nextLine(Scanner.java:1540)处找不到任何行[在0.8秒内完成,退出代码为1]谢谢。我将不得不进一步研究这一点,因为它看起来像一个电脑安装问题。奇怪的事。