有符号整数的范围 [−231, 231− 1] 的整数翻转(int 最长也是231)
方法一:
class solution{
public int reverse(int x){
long n=0;
while(x!=0){
n=n*10+x%10;
x=x/10;
}
return (int)n==n?(int)n:0;
}
}
方法二:
借鉴回文数的reverse()翻转函数
如果输入·整数是0,直接返回零
如果是正整数,转换成String类型 然后用StringBuffer().reverse()函数翻转后,再转换成Integer类型·
如果是负数则先将 负号用s.subString(1); 函数去掉第一个字符,在进行函数翻转 ,最后转回integer类型,return 乘(-1)
注意如果测试输入数据超出int最大值会编译错误,所有用try{} catch{} 捕捉一下异常
【拓展】subString(1,4); 代表去掉字符数组下标从1到4的字符。
class Solution {
public int reverse(int x) {
if(x>=0){
if(x==0) {return 0;}
String s = String.valueOf(x);
String reverse = new StringBuffer(s).reverse().toString();
//Integer res = Integer.valueOf(reverse);
int result = 0;
try {
// 数字转换
result = Integer.parseInt(reverse);
} catch (Exception e) {
}
return result;
}
String s = String.valueOf(x);
String str = s.substring(1);
String reverse = new StringBuffer(str).reverse().toString();
int result = 0;
try {
// 数字转换
result = Integer.parseInt(reverse);
} catch (Exception e) {
}
return result*(-1);
}
}
每天进步一点点,每天像我宝靠近一点点
oh yeah
完结撒花