2016-08-27 3 views
-5

Я пытался изменить как Струнный A00001 к INT 1 в этом коде, но Eclipse, сказал мне, чтоКак использовать java Integer.parseInt()?

Исключение в потоке «АВТ-EventQueue-0» java.lang.NumberFormatException:
Для ввода строки: "00001 "

на java.lang.NumberFormatException.forInputString (Неизвестный источник)
в java.lang.Integer.parseInt (Unknown Source) в java.lang.Integer.parseInt (Unknown Source)
в LibraryManager.BookAdd. getInsertOrderedList (BookAdd.java:105)

Вот мой код:

while(rs1.next()){ 
    allid[i]=rs1.getString("id"); 
    String mystr=allid[i].substring(1); 
    try{ 
     System.out.println(mystr);//this print 00001 
     intofid[i]=Integer.parseInt(mystr); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
    i++; 
} 

Как я могу решить эту проблему?

ответ

4

У вас есть пробелы в конце строки "00001 ". Вот почему строка не может быть проанализирована как целое число. вы можете trim строку и исключение пошло:

intofid[i]=Integer.parseInt(mystr.trim()); 
+0

Это правда, меня определил тип 'id' как char(), а не varchar() в таблице, и, наконец, получил его, thx! – Hiro

0

Хиро, есть хвостовые пробела в строке. Вам нужно будет обрезать его.

String str = "0001 "; 
System.out.println(Integer.parseInt(str.trim())); 
0

Вы также можете использовать этот подход в случае конечных и ведущих пространств, даже пробелов внутри номеров. Например:

String mystr = " 00 0001 "; 
intofid[i] = Integer.parseInt(mystr.replace(" ","")); 
+2

лучше, чем подход? trim() удалить как ведущие, так и завершающие пробелы – Jens

Смежные вопросы