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

项目中读取CSV文件遇问题:触发NumberFormatException错误求助

解决CSV读取时的NumberFormatException问题

嘿,看了你的问题和提供的CSV内容,我立刻就找到问题根源啦!

错误原因分析

NumberFormatException本质上就是你尝试把一个非数字的字符串转换成数字类型(比如int或double)时触发的异常。看你给出的最后一行CSV内容:

01020,Inflatable Dartboard,32.95,...

最后一个字段是...——这明显不是整数(前面所有行的最后一个字段都是库存数量,比如2、48、34这类数字)。当你的代码尝试把这个...解析成数字时,肯定会抛出这个异常。

具体解决方案

  • 先修复CSV文件本身:
    这行数据明显不完整,要么补全正确的库存数字(比如类似前面行的整数),要么直接删除这行无效数据,确保所有行的字段数量和类型都保持一致。

  • 给代码增加异常防护:
    即使CSV文件看起来没问题,也可能存在脏数据。建议在解析数字字段时添加try-catch处理,避免程序直接崩溃:

    // 假设你是按逗号拆分每行得到字段数组
    String[] csvFields = line.split(",");
    if (csvFields.length != 5) {
        System.err.println("跳过格式错误的行:" + line);
        continue;
    }
    String quantityStr = csvFields[4];
    int quantity;
    try {
        quantity = Integer.parseInt(quantityStr);
    } catch (NumberFormatException e) {
        // 可以根据需求选择记录日志、设置默认值或者跳过该行
        System.err.println("无效的库存数量,跳过行:" + line);
        continue;
    }
    // 继续处理其他字段...
    
  • 使用成熟的CSV解析库:
    手动用split(",")处理CSV很容易踩坑(比如字段里包含逗号的情况),建议改用OpenCSV、Apache Commons CSV这类专门的库。它们不仅能自动处理各种CSV格式问题,还能帮你安全地做类型转换,减少手动编写解析代码的出错概率。

如果你的代码里还有其他特殊逻辑,或者修复后仍然有问题,可以把具体的解析代码贴出来,咱们再进一步排查~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:31:26