将字符串数组转换为整数数组android

时间:2013-07-19 10:50:17

标签: android performance

我创建了一个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.为什么呢? 帮助我

4 个答案:

答案 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[]中的任何值,因为整数的默认值为0a[]中的每个元素都为0

答案 2 :(得分:0)

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

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

通过例外吸收:

catch(Exception e)

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

答案 3 :(得分:0)

ParseInt是一个在某些字符串中搜索整数的函数。如果您熟悉c语言,它就像atoi

如果您的字符串只包含字母,则返回0。

如果您的字符串以字母开头并以数字结尾,则它也将返回0.

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

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