题目: 123--------321
-123--------- -321
public class Solution {
public int reverse(int x) {
int remain=Math.abs(x%10);
String r=String.valueOf(remain);
int l=Math.abs(x/10);
String str=String.valueOf(l);
char[] chars=str.toCharArray();
int i=0;int j=chars.length-1;
while(i<j){
char temp=chars[i];
chars[i]=chars[j];
chars[j]=temp;
i++;
j--;
}
String newStr= String.copyValueOf(chars);
String result="";
if(x<0){
result="-"+r+newStr;
}
else{
result=r+newStr;
}
return Integer.parseInt(result);
}
}
至今不知道怎么把如果输入情况是long的问题解决了
测试十位数字过不了!!
public int rever(int x){
long r = 0;
while(x != 0){
r = r*10 + x%10;
x /= 10;
}
if(r >= Integer.MIN_VALUE && r <= Integer.MAX_VALUE)
return (int)r;
else
return 0;
}
测试过10位数。
如果x=98765
x%10
----------------------------
r = 0*10+5=5
x=x/10=9876
----------------------------
r = 5*10+6=56
x=x/10=987
----------------------------
r=56*10+7=567
x=x/10=98
----------------------------
r=567*10+8=5678
x=x/10=9
----------------------------
r=5678*10+9=56789
x=x/10=0
跳出循环