如何将充满标记的 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数组