将ArrayList<String>转换为ArrayList<Integer>或整数数组

7

我想制作一个需要将ArrayList<String>[]转换为ArrayList<Integer>[]的应用程序,我还使用了以下代码:

ArrayList<String>[] strArrayList;
int ArrayRes = (int) strArrayList[];

但是这段代码出现了错误,有人能帮我吗?

任何建议都将不胜感激。


你希望如何将一个ArrayList的String数组转换为单个int?问题不够清晰。 - HashimR
阿里·加内伊,您想将字符串数组列表解析为整数数组列表吗?您是否只是想知道如何将数组列表中的所有字符串值转换为整数值? - Pankaj Kumar
1
@HashimR A:顺便说一下,这个问题并不含糊,非常清晰,我只是问了我的问题。 - Mr.James
好,首先,为什么不制作一个简单的ArrayList <String>?你想如何将整个ArrayList转换为单个int?你想连接所有字符串吗?你没有提及任何内容,所以你的问题似乎不完整。无冒犯意。 :) - HashimR
@HashimR:好的,我使用了源代码,它必须是一个整数。 - Mr.James
@Ali Ghanei请检查您选择的答案是否适用于包含字母的字符串? - Pankaj Kumar
5个回答

17

定义一个方法,将ArrayList中的所有字符串值转换为整数。

private ArrayList<Integer> getIntegerArray(ArrayList<String> stringArray) {
        ArrayList<Integer> result = new ArrayList<Integer>();
        for(String stringValue : stringArray) {
            try {
                //Convert String to Integer, and store it into integer array list.
                result.add(Integer.parseInt(stringValue));
            } catch(NumberFormatException nfe) {
               //System.out.println("Could not parse " + nfe);
                Log.w("NumberFormat", "Parsing failed! " + stringValue + " can not be an integer");
            } 
        }       
        return result;
    }

只需要调用那个方法,如下:

ArrayList<Integer> resultList = getIntegerArray(strArrayList); //strArrayList is a collection of Strings as you defined.

愉快的编码 :)


1
使用 result.add(Integer.parseInt(stringValue.trim()); 来避免空格引起不必要的异常错误。 - lifebalance

5
这个怎么样?
   import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;

    public class sample7 
    {
        public static void main(String[] args)
        {

            ArrayList<String> strArrayList = new ArrayList<String>();
            strArrayList.add("1");
            strArrayList.add("11");
            strArrayList.add("111");
            strArrayList.add("12343");
            strArrayList.add("18475");
            List<Integer> newList = new ArrayList<Integer>(strArrayList.size()) ;
            for (String myInt : strArrayList) 
            { 
              newList.add(Integer.valueOf(myInt)); 
            }
            System.out.println(newList);
        }

    }

0
你可以像这样将字符串列表转换为整数:
ArrayList<Integer> numbers = new ArrayList<Integer>();

for(int i = 0; i < strArrayList.size(); i++) {
   numbers.add(Integer.parseInt(strArrayList.get(i)));   
}

strArrayList[i]会给你一个ArrayList类型,这不是Integer.parseInt的有效参数。 - user684934
ArrayList<int>?你确定吗?我认为应该是ArrayList<Integer>而不是ArrayList<int>。 - Ashish Ratan

0
你试图将一个ArrayList对象的数组转换成int。当然会报错。
首先,你需要一个普通的ArrayList,而不是一个ArrayList的数组。
其次,你使用Integer.parseInt()方法将String对象转换为int。int是基本类型,不是类类型,也不是String的超类。

-8

在列表上进行迭代并将它们解析为整数:

(警告:未经测试)

ArrayList<String> strArrayList;
int[] ArrayRes = new int[strArrayList.size()];

int i = 0;
for (String s : strArrayList)
{
    ArrayRes[i++] = Integer.parseInt(s);
}

然后,您可以根据希望连接它们的方式将它们转换为单个 int 值。


它要求将ArrayList转换为int,而不是int[]。 - Umer Hayat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接