2013-07-19 163 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的枚舉。

相關問題