嗨,我几天前开始自学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)
为了使用点而不是逗号来获取输入数据,我需要做什么?
先感谢您。
我假设您的系统默认语言环境是使用,
作为小数分隔符的语言环境。
假设你想继续使用Scanner
,你可以使用Locale.US
将语言环境设置为useLocale
。美国语言环境使用.
作为小数分隔符:
Scanner userDataInput = new Scanner(System.in).useLocale(Locale.US);
... // Code as before