我是java编程的新手。我的问题是,我有一个String
数组,但当我试图将它转换为int
数组时,我总是得到
java.lang.NumberFormatException
我的代码是
private void processLine(String[] strings) {
Integer[] intarray=new Integer[strings.length];
int i=0;
for(String str:strings){
intarray[i]=Integer.parseInt(str);//Exception in this line
i++;
}
}
任何帮助都将是伟大的感谢!
发布于 2011-07-31 07:16:08
为了去掉额外的空格,你可以像这样修改代码:
intarray[i]=Integer.parseInt(str.trim()); // No more Exception in this line
发布于 2011-07-31 07:21:34
为了帮助调试,并使您的代码更好,执行以下操作:
private void processLine(String[] strings) {
Integer[] intarray=new Integer[strings.length];
int i=0;
for(String str:strings){
try {
intarray[i]=Integer.parseInt(str);
i++;
} catch (NumberFormatException e) {
throw new IllegalArgumentException("Not a number: " + str + " at index " + i, e);
}
}
}
此外,从代码整洁的角度来看,您可以通过执行以下操作来减少代码行:
for (String str : strings)
intarray[i++] = Integer.parseInt(str);
发布于 2018-10-12 15:39:54
另一种捷径:
int[] myIntArray = Arrays.stream(myStringArray).mapToInt(Integer::parseInt).toArray();
https://stackoverflow.com/questions/6881458
复制相似问题