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
相关产品推荐
相关产品推荐

