【问题标题】:Convert Arraylist<String> to an ArrayList<Integer> or Integer Array [closed]将 Arraylist<String> 转换为 ArrayList<Integer> 或整数数组 [关闭]
【发布时间】:2011-12-04 06:06:08
【问题描述】:

我想做一个需要将 ArrayList&lt;String&gt;[] 转换为 ArrayList&lt;Integer&gt;[] 的应用程序,我也使用了这个:

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

但是这段代码给我一个错误,有人可以帮助我吗?

任何建议将不胜感激

【问题讨论】:

  • 您希望如何将 ArrayList of String 转换为单个 int?问题很模糊。
  • Ali Ghanei,你想把你的字符串数组列表解析成整数数组列表吗?您只是在问如何将 arraylist 的所有字符串值转换为 int 值?
  • @HashimR A:问题并不含糊,很清楚,我只是问了我的问题。
  • 好吧,第一件事,你为什么不做简单的 ArrayList ?你想如何将整个 ArrayList 转换为单个 int?你想连接所有的字符串吗?您没有提及任何内容,因此您的问题似乎不完整。没有冒犯的意思。 :)
  • @HashimR:嗯,我使用的源代码必须是整数。

标签: java type-conversion


【解决方案1】:

您可以像这样将字符串列表转换为整数:

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 的有效参数
  • ArrayList ????你确定吗 ??我认为它将是 ArrayList 而不是 ArrayList
【解决方案2】:

定义一个方法,它将转换 arraylist 的所有 String 值 成整数。

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.

编码愉快:)

【讨论】:

  • 谢谢你,它也在工作。
  • 使用result.add(Integer.parseInt(stringValue.trim()); 避免空格导致不必要的异常错误。
【解决方案3】:

这个怎么样

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

    }

【讨论】:

    【解决方案4】:

    列表上的迭代器并将它们解析成整数:

    (警告:未测试)

    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[]
    【解决方案5】:

    您正在尝试将 ArrayList 对象数组转换为 int。当然会出错。

    首先,您需要一个普通的旧 ArrayList,而不是 ArrayLists 的数组。

    其次,您使用Integer.parseInt()String 对象转换为ints。 int 是基本类型,不是类类型,当然也不是String 的超类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 1970-01-01
      相关资源
      最近更新 更多