我试图在此代码中将String A00001更改为int 1,但Eclipse告诉我
线程“AWT-EventQueue-0”中的异常 java.lang.NumberFormatException:
对于输入字符串:"00001 "
at java.lang.NumberFormatException.forInputString(Unknown 来源)
在java.lang.Integer.parseInt(未知来源)at java.lang.Integer.parseInt(未知来源)
在 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++;
}
我该如何解决这个问题?
答案 0 :(得分:4)
您的字符串"00001 "
末尾有空格。这就是为什么字符串不能被解析为整数的原因。你可以trim
字符串,异常就会消失:
intofid[i]=Integer.parseInt(mystr.trim());
答案 1 :(得分:0)
Hiro,你的字符串中有一个尾随空格。你需要修剪它。
String str = "0001 ";
System.out.println(Integer.parseInt(str.trim()));
答案 2 :(得分:0)
您也可以在尾随和前导空格的情况下使用此方法,甚至是数字内的空格。例如:
String mystr = " 00 0001 ";
intofid[i] = Integer.parseInt(mystr.replace(" ",""));