【问题标题】:How to convert Object[] filled with tokens to an Integer Array?如何将充满标记的 Object[] 转换为整数数组?
【发布时间】:2011-09-16 18:11:31
【问题描述】:

我正在尝试编写一个方法,该方法接受一个填充有标记的 Object[] 并将其转换为整数数组。

我从一个 ArrayList 开始:

ArrayList<String> colArr = new ArrayList<String>();

然后用 .txt 文件中的标记填充它:

while(st.hasMoreTokens()){
    colArr.add(st.nextToken());
}

然后将其转换为 Object[]:

Object[] newColArr = colArr.toArray();

我现在需要编写一个将这个 Object[] 转换为 Integer 的方法,以便我可以将某些元素添加在一起。这是我尝试过的:

public static Integer[] convert(Object[] objectArray){
    Integer[] intArray = new Integer[objectArray.length];

    for(int i=0; i<objectArray.length; i++){
        intArray[i] = (Integer) objectArray[i];
    }
    return intArray;
}

但得到“错误:java.lang.String 无法转换为 java.lang.Integer”。

【问题讨论】:

    标签: java arrays object methods arraylist


    【解决方案1】:

    你也可以使用guava'sLists.transform

    List<String> numberList=Lists.newArrayList("1","2","3");
        List<Integer> trnsList = Lists.transform(numberList,new Function<String,Integer>() {
        @Override
        public Integer apply(String arg0) {
            return Integer.valueOf(arg0);
         }
        });
        Integer[] intArr=trnsList.toArray(new Integer[trnsList.size()]);
    

    【讨论】:

      【解决方案2】:

      使用Integer.valueOf(objectArray[i]) 而不是像(Integer)objectArray[i] 那样强制转换

      编辑:

      为了澄清,请记住 Integer.valueOf() 只是 Integer.parseInt() 周围的一个装箱对象。所以您必须处理 NumberFormatException。 如果您非常确定您的文本文件将只包含整数,您可以简单地拥有一个整数数组列表并执行 Integer.valueOf(tokenizer.nextToken())

      【讨论】:

      【解决方案3】:

      您不能直接从 java.lang.String 类型转换为 java.lang.Integer,它们是两个完全不同的对象。而是尝试这样做:

      Integer.parseInt(objectArray[i])
      

      不要忘记处理 java.lang.NumberFormatException。还有一件事,您不需要对对象数组进行中间转换。当然,除非您将其用于您未提及的其他事情。干杯。

      【讨论】:

        【解决方案4】:

        如果您知道对象数组包含字符串,您可以使用 Integer.parseInt() 将 String 转换为 Integer

        【讨论】:

          【解决方案5】:

          遍历你的字符串数组并使用 Integer.parseInt();

          【讨论】:

            【解决方案6】:

            Integer.parseInt(string);用于从字符串中获取整数

            【讨论】:

              猜你喜欢
              • 2022-12-03
              • 2021-08-19
              • 1970-01-01
              • 2019-10-31
              • 1970-01-01
              • 2010-11-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多