力扣 整数翻转

有符号整数的范围 [−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
完结撒花

Guess you like

Origin blog.csdn.net/weixin_43889487/article/details/120989295