2013-07-19 160 views
-7

我创建了一个url字符串数组。将字符串数组转换为整型数组android

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

绝不是一个很好的习惯来捕捉所有异常 – Krishnabhadra

+6

你会预期将'http:// www.kllhjj.png'转换为整数的结果是什么? –

回答

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 s。

你不能像"http://yui.kl.png"等字符串解析int,因为它们不是数字格式。阅读documentation

Throws:

NumberFormatException - if the string does not contain a parsable integer.

0

你所得到的NumberFormatException异常,因此不a[]因为整数的默认值更改任何值是0您在a[]

0

网址,每一个元素为0的文本字符串你解析文本为int:

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

它通过一个异常的吸收:

catch(Exception e) 

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

0

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

当你拥有了只包含字母的字符串,将返回0。

当你有一个以字母开头,以数字结尾的字符串也将返回0

它会转换为字符串如果字符串包含数字字符(如“0123”),则为整数。

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

相关问题