2015-06-06 4 views
0

У меня есть проблема, что, когда я использую Integer.parseInt, в этом контексте он не конвертирует мою, а почему-то даже выгнал меня из цикла, поэтому он не хочет отображать, например System.out.print (1) после цикла, как все было разбито, но у меня нет ошибки. Пожалуйста помоги. Это часть кода, который вызывает это. переменная "вход" является ArraylНет преобразования с Integer.ParseInt()

for (int i=0;i<input.size();i++) 
{ 
    if(point>Integer.parseInt(input.get(i).split(":")[1])) 
    {  
     input.set(i,highScore + System.getProperty("line.separator")); 
     break; 
    }    
} 
+0

У вас есть предложение break в предложении if, когда оно оценивается как true, оно, конечно, выйдет из цикла без каких-либо ошибок. О, а также Integer.parseInt() может вызывать NumberFormatException. – saljuama

+0

Да, но если я прокомментирую все это и скажу, возьмите System.out.print (Integer.parseInt (input.get (i) .split (":") [1])), он ничего мне не покажет, так что я подумайте, что с этой проблемой стоит – stanisz93

+0

поставить Integer.parseInt в блок catch try и искать NumberFormatException – saljuama

ответ

0

Подтвердили ли вы, что input.get (I) .split (":") [1] дает вам точно строку, которая содержит только цифры?

Integer.parseInt (String s) бросает NumberFormatException, так что вы должны выполнить этот код внутри Try/поймать блок, как это:

for (int i=0;i<input.size();i++) { 
    try { 
    int parsedValue = Integer.parseInt(input.get(i).split(":")[1]); 
    // do whatever you want to do with parsedValue 
    } 
    catch(NumberFormatException e) { 
    System.out.print("I caught an error!, what i was trying to parse wasn't a number"); 
    // or any other action you consideer that needs to be done when parseInt fails 
    } 
} 
0

Существует только одно объяснение (если вы уверены, что исключение не является брошен): input пуст. :)

+0

не вводил бы .get (i) выбросить NPE? – saljuama

+0

Нет, эта строка не выполняется, если 'input' пуст. И это не будет NPE, но AIOOBE. –

+0

d'oh, я прокомментировал это быстро, вы правы – saljuama