错误:
Exception in thread “main” java.lang.NumberFormatException: For input string: “9999999991”
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at cn.day11.Solution.reverse(Solution.java:18)
at cn.day11.main.main(main.java:14)
代码:
package cn.day11;
//1999999999
//1534236469
public class main {
public static void main(String[] args) {
Solution d=new Solution();
int i=d.reverse(1999999);
System.out.println(i);
int j=1534236469;
int k=1999999999;
System.out.println(k>Integer.MAX_VALUE);
}
}
class Solution {
public int reverse(int x) {
int fuhao=1;
String s=String.valueOf(x);
StringBuffer sb=new StringBuffer(s);
if(sb.charAt(0)=='-') {
fuhao=-1;
sb.deleteCharAt(0);
} String ss=sb.reverse().toString();
String sss="1999999999";
System.out.println(sss.length());
System.out.println(ss.length());
int result =Integer.parseInt(ss.trim());
if(result>Integer.MAX_VALUE||result<Integer.MIN_VALUE) {
return 0;
}
return result;
}
}
说明:错误出在integer.parseint(),当括号中的数字比较小时,如ss=12345不报错,当括号中是sss(parseint转化的最大数字),不报错,但ss=1999999999(和sss一样)就报错,这是为什么啊?大佬指点一下吧☒☒☒