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

IntelliJ社区版更新后执行Java代码抛出NumberFormatException求助

解决Java NumberFormatException的问题

兄弟,我一眼就揪出问题所在了——你贴的代码和抛出异常的代码根本不是同一个!

你看异常信息里明确指向:

Exception in thread "main" java.lang.NumberFormatException: For input string: "gosho"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at P01_PersonalTitles.main(P01_PersonalTitles.java:7)

异常来自P01_PersonalTitles.java类的第7行,而你贴的是asdasd.java——这个类里只是读取字符串再输出,完全没有调用Double.parseDouble()这类解析数字的方法,根本不可能抛出这个错误。

给你几个具体的解决步骤:

  • 先检查IntelliJ右上角的运行配置:是不是不小心选了P01_PersonalTitles而不是你写的asdasd?
  • 如果确实要运行asdasd类,直接右键点击这个类的代码区域,选择Run 'asdasd.main()',就能正确执行你那段字符串处理代码了。
  • 要是你其实是想运行P01_PersonalTitles,那得去这个类的第7行看看:你肯定是把输入的字符串(比如"gosho")当成数字去解析了,比如写了Double.parseDouble(scanner.nextLine())这类代码。这时候要么修改输入为合法数字,要么给代码加个异常处理,比如用try-catch捕获错误:
import java.util.Scanner;

public class P01_PersonalTitles {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        String input = scanner.nextLine();
        try {
            double num = Double.parseDouble(input);
            // 这里写你后续的业务逻辑
            System.out.println("你输入的数字是:" + num);
        } catch (NumberFormatException e) {
            System.out.println("输入的不是有效数字,请重新输入!");
        }
        scanner.close();
    }
}

内容的提问来源于stack exchange,提问作者Georgi eLaZizY Georgiev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:07:50