运行这段程序
public class test {
public static void main(String [] args) {
String a=" 1 ";
int b=Integer.parseInt(a);
System.out.printf("%d",b);
}
}
终端会报出错误:
Exception in thread “main” java.lang.NumberFormatException: For input string: " 1 "
at
java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:644)
at java.base/java.lang.Integer.parseInt(Integer.java:776)
at test.main(test.java:4)
原因
第四行的数制转换出现了问题,注意观察第三行需要转换的字符串前后含有空格,所以Integer.parseInt(a)报错。
将
Integer.parseInt(a);
改为
Integer.parseInt(a.trim());
trim()函数的作用是去除字符串前后多余的空格。
修改后的代码
public class test {
public static void main(String [] args) {
String a=" 1 ";
int b=Integer.parseInt(a.trim());
System.out.printf("%d",b);
}
}
运行结果:1