java - reversing an Integer with a special case -


i trying reverse integer there condition. if integer not fit in 32 bit signed integer value function should return 0. handling case program raises exception. why ?

public class solution {     public  int reverse(int a) {         string s = integer.tostring(a);         stringbuilder sb = new stringbuilder(s);         if(s.charat(0) == '-')             sb.deletecharat(0);         string n = sb.reverse().tostring();         int n = 0 -integer.parseint(n);         if(n >= -2147483648 && n <= 2147483647)             return n;         return 0;     } } 

what wrong above code.

try:

public  int reverse(int a) {     boolean negative = < 0;     string s = integer.tostring(a);     stringbuilder sb = negative ? new stringbuilder(s.substring(1))                                    : new stringbuilder(s);      long reversed = long.parselong(sb.reverse().tostring());     reversed = negative ? 0l - reversed : reversed;     if(reversed < min_value || reversed > max_value) {         return 0;     }     return long.valueof(reversed).intvalue(); } 

Comments