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

如何将字符串数组中的数字字符串转为int?文件读取赋值报错求助

解决方法

核心问题原因

fields数组的元素是字符串类型,哪怕内容是数字(比如"70"),也不能直接赋值给int类型的numfields数组——Java不会自动完成字符串到整数的隐式转换,所以抛出类型不匹配错误。

直接修复代码

用Integer.parseInt()方法把字符串形式的数字转为int类型,修改报错的代码行:

numfields[0] = Integer.parseInt(fields[2]);
numfields[1] = Integer.parseInt(fields[3]);
numfields[2] = Integer.parseInt(fields[4]);

额外注意事项

  • 分隔符匹配问题:你代码里用split("\t")按制表符拆分,但给出的文件内容显示是多个空格分隔。如果实际文件是空格分隔,建议改用split("\\s+")(匹配任意数量的空白字符,包括空格、制表符),避免拆分出空字符串或索引越界:
    fields = line.split("\\s+");
    
  • 异常处理:如果文件中存在非数字的内容,Integer.parseInt()会抛出NumberFormatException。如果需要健壮性,可以加try-catch块捕获异常:
    try {
        numfields[0] = Integer.parseInt(fields[2]);
        numfields[1] = Integer.parseInt(fields[3]);
        numfields[2] = Integer.parseInt(fields[4]);
    } catch (NumberFormatException e) {
        // 处理数字格式错误,比如打印日志或跳过当前行
        System.err.println("当前行数字格式错误:" + line);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:39