Java - 将2D字符串部分转换为2D整数ArrayList

时间:2014-12-18 04:48:09

标签: java arrays string arraylist

我试图将我的2D字符串转换为2D整数ArrayList,但我不知道如何。我已经阅读了一些参考文献,但没有找到任何相关内容。

这是我的方法:

public static ArrayList<int[]> convert2DStringTo2DIntArrayList(String[][] originalString, int lengthOfRow, int lengthOfColumn) {
    ArrayList<int[]> targetList = new ArrayList<int[]>();
    if (lengthOfRow == -1) {
        lengthOfRow = originalString.length - 1;
    }
    if (lengthOfColumn == -1) {
        lengthOfColumn = originalString[0].length - 1;
    }
    for (int i = 0; i <= lengthOfRow - 1; i++) {
        for (int j = 0; j <= lengthOfColumn - 1; j++) {

            //targetList.addAll(Integer.parseInt(Arrays.asList(originalString)));
        }
    }
    return targetList;
}

当lengthOfRow和lengthOfColumn都等于-1时,此方法将完全将2D String转换为2D Integer ArrayList。 String没有问题,因为要继续的String数组部分由整数填充。我遇到这个问题是因为我的原始方法都是用基本类型和字符串编写的。在中途,我发现我无法处理字符串数组的几个问题。因此我必须编写几种方法将字符串转换为ArrayList。

2 个答案:

答案 0 :(得分:0)

已更新。要转换表示为字符串的多维整数数组:

import java.util.List;
import java.util.ArrayList;
public class Convert
{
    public static void main(String[] args)
    {
        List<List<Integer>> list = convert2DStringToList(new String[][]{ {"0", "1", "2"}, {"3", "4", "5"}, {"100", "200", "300", "500"}, {"22"} });
        System.out.println(list.toString());
    }

    public static List<List<Integer>> convert2DStringToList(String[][] original)
    {
        List<List<Integer>> list = new ArrayList<>();
        for (int i = 0; i < original.length; i++)
        {
            List<Integer> subList = new ArrayList<>();
            list.add(subList);
            for (int j = 0; j < original[i].length; j++)
            {
                subList.add(Integer.valueOf(original[i][j]));
            }
        }
        return list;
    }
}

对于给定的代码,输出为[[0,1,2],[3,4,5],[100,200,300,500],[22]]。

答案 1 :(得分:0)

这是可以帮助你的功能。

public void ArrayList<ArrayList<Integer>> convert2DStringTo2DIntegerArray(String[][] original) {
    ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
    for (int i = 0; i < original.length; i++)
        {
            ArrayList<Integer> tempArray = new ArrayList<Integer>();
            for (int j = 0; j < original[i].length; j++)
            {
                tempArray.add(Integer.valueOf(original[i][j]));
            }
            list.add(tempArray);
        }
    return list;
}