Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换列表<;字符串[]>;至int[]_Java - Fatal编程技术网

Java 转换列表<;字符串[]>;至int[]

Java 转换列表<;字符串[]>;至int[],java,Java,如果可以将字符串数组列表(arraylist)转换为整数数组(int[]),是否可以将字符串数组数组列表(arraylist)转换为整数数组(int[])?如果所有字符串都能正确解析为整数,则是可能的 在列表上迭代,并在数组上的列表中迭代。将字符串解析为整数(例如,使用Integer.parseInt(someString);)并将integervalue存储在整数数组中 当然,您必须在列表中找到值的总数才能初始化数组。在Java 8中: list.stream().mapToInt(Integ

如果可以将字符串数组列表
(arraylist)
转换为整数数组
(int[])
,是否可以将字符串数组数组列表
(arraylist)
转换为整数数组
(int[])

如果所有字符串都能正确解析为整数,则是可能的

在列表上迭代,并在数组上的列表中迭代。将字符串解析为整数(例如,使用
Integer.parseInt(someString);
)并将integervalue存储在整数数组中

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

在Java 8中:

list.stream().mapToInt(Integer::parseInt).toArray();

编辑 由于问题是用
List
而不是
List
编辑的,因此解决方案是:

list.stream().flatMap(Arrays::stream).mapToInt(Integer::parseInt).toArray();

运行下面的代码,我希望它满足您的要求

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++;
        }

    }
}

除我的评论外,您还需要了解如何从二维数组映射到一维数组

这里有一个建议,它的结果是
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);
}
publicstaticvoidmain(字符串[]args){
ArrayList arrList=新的ArrayList();
//填满它
添加(新字符串[]{“11”、“12”、“13”、“14”、“15”});
添加(新字符串[]{“21”、“22”、“23”、“24”、“25”});
添加(新字符串[]{“31”、“32”、“33”、“34”、“35”});
添加(新字符串[]{“41”、“42”、“43”、“44”、“45”});
添加(新字符串[]{“41”、“52”、“53”、“54”、“55”});
//转换它
ArrayList ints=新的ArrayList();
for(字符串[]数组:arrList){
for(字符串str:array){
add(Integer.parseInt(str));
}
}
整数[]结果=ints.toArray(新整数[]{});
for(int i:结果)
系统输出打印LN(i);
}

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

 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++;
                    }
                }
            }

        }
    }
import java.util.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
ArrayList strArrayList=新的ArrayList();
字符串[]str1={“16”、“1421”、“1577”};
字符串[]str2={“15”、“1451”、“1461”、“6556”};
字符串[]str3={“157”、“8751”、“1136”、“556”、“879”};
strArrayList.add(str1);
strArrayList.add(str2);
strArrayList.add(str3);
int sizeofar=0;
int i=0;
for(字符串[]s:strArrayList)
{
sizeOfArr+=s.长度;
}
int[]ArrayRes=新int[sizeofar];
for(字符串[]s:strArrayList)
{
如果(s.长度>0){
用于(字符串s1:s){
ArrayRes[i]=Integer.parseInt(s1);
System.out.println(ArrayRes[i]);
i++;
}
}
}
}
}

是的,有可能。您的标题和问题不匹配。它是列表还是列表?@NickJ仔细阅读,这个问题很有意义,但不费吹灰之力。
ArrayList
是二维的,但您想将其转换为仅为一维的
int[]
。除了将字符串解析为int之外,您还需要从2D映射到1D。在堆栈溢出时,我们知道当您接受答案时(正如您对Pratswinz的答案所做的那样),问题就解决了。无需编辑问题的标题。感谢您的回复,但这不是我需要的。我的问题是ArrayList是否可以转换为int[]耶,我以前没有重新检查过它。无论如何,谢谢!如果你有解决方案,我很高兴cz我还找不到任何解决方案。我上面的答案是@NickJ的代码版本,在上面对你的问题的评论中解释过谢谢你Pratswinz!它起作用了,这就是我需要的。至少我有你和@NickJThank you@NickJ的两个解,所以我们应该使用ArrayList映射它,这是我的错误,这就是原因。不管怎样,我从你身上学到了一些东西:)
 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++;
                    }
                }
            }

        }
    }