我想在Java中用点而不是逗号输入double值,但我得到一个例外

问题描述 投票:0回答:1

嗨,我几天前开始自学java。我正在尝试编写我的第一个基本方法,但我遇到了一个问题。

public class CollectInput {

public static void collectInput() {


        System.out.println("Collect input double data!" + "\n\n");

        CustomUserInputData CustomData = new CustomUserInputData(); 
        Scanner userDataInput = new Scanner(System.in); 

        System.out.println("Enter the first double value:"); 
        CustomUserInputData.setFirstDoubleData(userDataInput.nextDouble());

当我运行此代码并使用逗号输入double值,例如:

3,2345

没有问题。

但是当我想以如下格式输入double值时:

3.2345

Java引发异常:

Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Unknown Source)
    at java.base/java.util.Scanner.next(Unknown Source)
    at java.base/java.util.Scanner.nextDouble(Unknown Source)

为了使用点而不是逗号来获取输入数据,我需要做什么?

先感谢您。

java input double java.util.scanner
1个回答
3
投票

我假设您的系统默认语言环境是使用,作为小数分隔符的语言环境。

假设你想继续使用Scanner,你可以使用Locale.US将语言环境设置为useLocale。美国语言环境使用.作为小数分隔符:

Scanner userDataInput = new Scanner(System.in).useLocale(Locale.US);
... // Code as before
© www.soinside.com 2019 - 2024. All rights reserved.