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

Java中如何将字符串ArrayList转换为整数数组?

解决ArrayList转二维整数数组的问题

嘿,我来帮你排查代码里的问题,顺便给你一个可行的解决方案~

先看你写的两段代码里的问题:

代码1的错误点

  • 你定义的result是int[][]数组,不是ArrayList,数组没有add()方法,不能用result.add(...)来赋值,得直接给result[i]赋值才行。
  • 如果lines是ArrayList<String>,获取元素应该用lines.get(i),而不是lines.getString(i)(这个方法属于数据库结果集这类特定类,不是ArrayList的API)。
  • 最关键的:每个lines里的元素是逗号分隔的字符串(比如"0,1,0"),不能直接用Integer.valueOf()转成单个整数,得先把字符串按逗号拆分成单个的"0""1"字符串,再逐个转成int。

代码2的问题

虽然代码没写完,但能看出来你想用Integer.parseInt(),但这个方法只能转单个数字字符串,同样没法直接处理逗号分隔的整串内容,还是得先拆分字符串。


正确的实现代码

这里给你写一个完整的正确版本,注释里标了每一步的作用:

// 假设lines是ArrayList<String>,每个元素是逗号分隔的0和1,比如"0,1,0,1"
int[][] result = new int[lines.size()][]; 

for (int i = 0; i < lines.size(); i++) {
    // 1. 获取当前行的字符串,按逗号拆分得到单个数字的字符串数组
    String[] numStrs = lines.get(i).split(",");
    // 2. 创建对应长度的int数组
    int[] row = new int[numStrs.length];
    // 3. 遍历拆分后的字符串,转成int并存入数组
    for (int j = 0; j < numStrs.length; j++) {
        row[j] = Integer.parseInt(numStrs[j].trim()); // trim()防止字符串前后有空格导致转换失败
    }
    // 4. 把当前行的int数组赋值给二维数组的对应位置
    result[i] = row;
}

如果你的lines里的元素可能带空格(比如"0 , 1 , 0"),trim()能帮你去掉每个数字字符串前后的空格,避免转int时报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:29:42