我正在尝试编写一个方法,该方法接受一个用标记填充的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 ”。
答案 0 :(得分:4)
使用Integer.valueOf(objectArray[i])
而不是像(Integer)objectArray[i]
编辑:
为了澄清,请记住Integer.valueOf()只是Integer.parseInt()周围的盒装对象..所以你必须处理NumberFormatException。 如果您确定您的文本文件只包含整数,那么您可以只使用整数的arraylist并执行Integer.valueOf(tokenizer.nextToken())
答案 1 :(得分:1)
Integer.parseInt(string);适用于从String获取Integer
答案 2 :(得分:1)
遍历你的字符串数组并使用Integer.parseInt();
答案 3 :(得分:1)
你不能直接从java.lang.String转换为java.lang.Integer,它们是两个完全不同的对象。而是尝试做:
Integer.parseInt(objectArray[i])
不要忘记处理java.lang.NumberFormatException。还有一件事,你不需要做中间转换到Object数组。当然除非您将其用于其他事情,否则您没有提及。欢呼声。
答案 4 :(得分:0)
如果你知道,对象数组包含字符串,你可以使用Integer.parseInt()将String转换为整数
答案 5 :(得分:0)
您还可以使用guava's Lists.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()]);