如何将充满标记的 Object[] 转换为整数数组?

Posted

技术标签:

【中文标题】如何将充满标记的 Object[] 转换为整数数组?【英文标题】:How to convert Object[] filled with tokens to an Integer Array? 【发布时间】: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”。

【问题讨论】:

【参考方案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())

【讨论】:

@Mike -- 将您的容器数组更改为 Double 并执行 Double.valueOf(objectArray[i])。如果您想要double 而不是Double,请执行Double.parseDouble(objectArray[i]) .. API 参考是您的朋友。download.oracle.com/javase/6/docs/api/java/lang/Double.html【参考方案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);用于从字符串中获取整数

【讨论】:

以上是关于如何将充满标记的 Object[] 转换为整数数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何将嵌套对象转换为数组数组

javascript怎样将object类型转换成array数组

PriorityQueue 到整数数组

在Java 8中将整数数组转换为字符串数组的最简单方法[重复]

将 Object[] 转换为 int[] 错误 [重复]

C#如何将OBJECT转换成数组