You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scanner调用nextDouble报错,输入1.5/1,5均触发InputMismatchException如何解决?

解决Java Scanner nextDouble()抛出InputMismatchException的问题

问题原因

Scanner的nextDouble()方法依赖当前JVM的**区域设置(Locale)**解析小数格式。如果系统Locale使用的小数分隔符与输入格式不匹配(比如部分欧洲地区默认用逗号做分隔符,而输入了点;或者Locale的分隔符特殊),就会抛出InputMismatchException。

解决方案

方案1:指定Locale统一解析规则

让Scanner使用固定Locale(比如Locale.US,以点作为小数分隔符),确保点格式的小数能被正确解析:

import java.util.Scanner;
import java.util.Locale;

public class ex1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in).useLocale(Locale.US);

        double inch;

        System.out.println("write the distance in inch:");
        inch = scan.nextDouble();

        System.out.println("the result is " + inch * 2.54 + " cm");
    }
}

方案2:兼容点和逗号两种输入格式

先读取输入字符串,将逗号替换为点后再转换为double,同时支持两种输入格式:

import java.util.Scanner;

public class ex1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        double inch;

        System.out.println("write the distance in inch:");
        String input = scan.next().replace(',', '.');
        inch = Double.parseDouble(input);

        System.out.println("the result is " + inch * 2.54 + " cm");
    }
}

方案3:添加异常处理避免程序崩溃

结合Locale指定,加入循环和异常捕获,当输入错误时提示用户重新输入:

import java.util.Scanner;
import java.util.Locale;

public class ex1 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in).useLocale(Locale.US);
        double inch = 0;
        boolean validInput = false;

        System.out.println("write the distance in inch:");
        while (!validInput) {
            try {
                inch = scan.nextDouble();
                validInput = true;
            } catch (java.util.InputMismatchException e) {
                System.out.println("输入格式错误,请输入带点的小数(如1.5)");
                scan.next(); // 清除错误输入缓存
            }
        }

        System.out.println("the result is " + inch * 2.54 + " cm");
    }
}

内容的提问来源于stack exchange,提问作者Kawthariiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:10:24