我创建了一个url字符串数组。
String urls[]={"http://www.kllhjj.png","http://yui.kl.png"};
此网址不完全正确。但在我的代码中,它们是正确的。然后我尝试将它们转换为整数数组,就像下面这样。
int a[] = new int[urls.length];
for(int i=0; i<a.length; i++) {
try {
a[i] = Integer.parseInt(urls[i]);
}
catch(Exception e) { }
}
但是这里总是将整数值显示为0.为什么呢? 帮助我
答案 0 :(得分:2)
由于Integer.parseInt(urls[i]);
投掷NumberFormatException
和,您正在吞下Exception
。以下代码在您的情况下不起作用,但至少您将了解错误:
try{
a[i]=Integer.parseInt(urls[i]);
}catch(Exception e){
e.printStackTrace();
throw new RunTimeException(e);
}
原始int
数组的所有元素默认为0
。因此您获得了0
。
您无法将"http://yui.kl.png"
等字符串解析为int
,因为它们不是数字格式。阅读documentation:
<强>抛出:
NumberFormatException - 如果字符串不包含可解析的整数。
答案 1 :(得分:0)
您收到NumberFormatException
异常因此未更改a[]
中的任何值,因为整数的默认值为0
,a[]
中的每个元素都为0
答案 2 :(得分:0)
网址是文本字符串,您将文本解析为int:
a[i]=Integer.parseInt(urls[i]);
通过例外吸收:
catch(Exception e)
并且int的默认值为零,所以你总是得到它。
答案 3 :(得分:0)
ParseInt是一个在某些字符串中搜索整数的函数。如果您熟悉c语言,它就像atoi
。
如果您的字符串只包含字母,则返回0。
如果您的字符串以字母开头并以数字结尾,则它也将返回0.
如果字符串包含像“0123”这样的数字字符,它会将字符串转换为整数。
我不知道你要做什么,但是如果你想要那个数字就代表一个网址。 我想你可以为网址创建一个枚举。