2013-07-19 9 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

Что бы вы сделали _expect_ в результате преобразования '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 вы имеете 0 для каждого элемента в a[]

0

URLS являются текстовая строка и вы разбор текста INT:

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

который через исключение поглощается:

catch(Exception e) 

и значение по умолчанию для int равно нулю, поэтому вы всегда получаете его.

0

ParseInt - это функция, которая ищет целое число в некоторой строке. это как atoi, если вы знакомы с языком c.

Если у вас есть строка, которая содержит только буквы он возвращает 0.

Когда у вас есть строка, которая начинается с буквы и заканчивается числом он также будет возвращать 0.

Он преобразует строку на целое число, если строка содержит числовые символы, такие как «0123».

Я не знаю, что вы пытаетесь сделать, но если вы хотите, чтобы это число представляло URL. Я думаю, вы можете создать перечисление для URL-адресов.