-7

我创建了一个 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) { }
}

但是这里总是将a整数值显示为0。这是为什么呢?帮我

4

4 回答 4

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. 因此你得到0s 。

您不能将诸如"http://yui.kl.png"etc 之类的字符串解析为,int因为它们不是数字格式。阅读文档

抛出:

NumberFormatException - 如果字符串不包含可解析的整数。

于 2013-07-19T10:51:48.487 回答
0

Urls 是文本字符串,您将文本解析为 int:

a[i]=Integer.parseInt(urls[i]);

通过异常吸收:

catch(Exception e)

int 的默认值为零,所以你总是得到它。

于 2013-07-19T10:55:39.097 回答
0

你得到了NumberFormatException异常,因此没有改变任何值a[],因为整数的默认值是0你对每个元素都有 0a[]

于 2013-07-19T10:54:16.063 回答
0

ParseInt 是一个在某个字符串中搜索整数的函数。就像atoi你熟悉c语言一样。

当您有一个仅包含字母的字符串时,它将返回 0。

当您有一个以字母开头并以数字结尾的字符串时,它也将返回 0。

如果字符串包含像“0123”这样的数字字符,它将把字符串转换为整数。

我不知道您要做什么,但是如果您想要该数字将代表一个网址。我认为您可以为网址创建一个枚举。

于 2013-07-19T10:57:15.223 回答