将List <string []>转换为int []

时间:2015-09-29 08:04:48

标签: java

如果可以将字符串(ArrayList<String[]>)的arraylist转换为整数(int[])的数组,是否可以将字符串(ArrayList<String[]>)的数组的arraylist转换为整数(int[])的数组?

5 个答案:

答案 0 :(得分:8)

在Java 8中:

container-fluid

修改

由于问题是使用list.stream().mapToInt(Integer::parseInt).toArray(); 代替List<String[]>编辑的,因此解决方案是:

List<String>

答案 1 :(得分:4)

我已根据您编辑的答案修改了代码,如果这是您想要的,请回复。

 import java.util.*;
    import java.lang.*;
    import java.io.*;


    class Ideone
    {
        public static void main (String[] args) throws java.lang.Exception
        {
            ArrayList<String[]> strArrayList= new ArrayList<String[]>();
            String[] str1={"16","1421","1577"};

            String[] str2={"15","1451","1461","6556"};

            String[] str3={"157","8751","1136","556","879"};

            strArrayList.add(str1);
            strArrayList.add(str2);
            strArrayList.add(str3);


            int sizeOfArr=0;
            int i=0;

            for (String[] s : strArrayList)
            {

                sizeOfArr+=s.length;
            }

            int[] ArrayRes = new int[sizeOfArr];


            for (String[] s : strArrayList)
            {
                if(s.length>0){
                    for (String s1 : s){
                        ArrayRes[i] = Integer.parseInt(s1);
                        System.out.println(ArrayRes[i]);
                        i++;
                    }
                }
            }

        }
    }

答案 2 :(得分:3)

运行以下代码,我希望它符合您的要求。

import java.util.*;
import java.lang.*;
import java.io.*;


class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        ArrayList<String> strArrayList= new ArrayList<String>();
            strArrayList.add("1");
            strArrayList.add("11");
            strArrayList.add("111");
            strArrayList.add("12343");
            strArrayList.add("18475");
        int[] ArrayRes = new int[strArrayList.size()];

        int i = 0;
        int x = 0;
        for (String s : strArrayList)
        {

            ArrayRes[i] = Integer.parseInt(s);
            System.out.println(ArrayRes[i]);
            i++;
        }

    }
}

输出:

1
11
111
12343
18475

答案 3 :(得分:1)

除了我的评论之外,您还需要了解如何从2D到1D数组进行映射。

以下建议导致Integer[]而不是int[],但您可能不会担心:

public static void main(String[] args) {

    ArrayList<String[]> arrList = new ArrayList<String[]>();

    //fill it
    arrList.add(new String[] {"11","12","13","14","15"});
    arrList.add(new String[] {"21","22","23","24","25"});
    arrList.add(new String[] {"31","32","33","34","35"});
    arrList.add(new String[] {"41","42","43","44","45"});
    arrList.add(new String[] {"41","52","53","54","55"});

    //convert it
    ArrayList<Integer> ints = new ArrayList<Integer>();
    for (String[] array : arrList) {
        for (String str : array) {
            ints.add(Integer.parseInt(str));
        }
    }

    Integer[] result = ints.toArray(new Integer[] {});

    for (int i : result)
        System.out.println(i);
}

答案 4 :(得分:0)

可以将所有字符串正确地解析为整数。

遍历列表并在列表中遍历数组。将字符串解析为整数(例如,使用Integer.parseInt(someString);)并将整数值存储在整数数组中。

当然,您必须在列表中找到初始化数组的值总数。