判断一个整数是否为回文

1.把这个数转成String类型

比如int num = 10;

String s = String.valueOf(n);

s为"10"

 public static boolean isPalindrome(int n){
            String s=String.valueOf(n);
            int start=0,end=s.length()-1;
            while(start<end){
                if(s.charAt(start)!=s.charAt(end)){
                    return false;
                }
                start++;
                end--;
            }
            return true;
        }
public static boolean isPalindrome(int num){
        String s = String.valueOf(num);
        int len = s.length();
        int j = 0, i = len;
        while(j <= (i/2)-1 && s.charAt(j) == s.charAt(i - j - 1) )
            j++;
        if(j == i / 2)
            return true;
        else return false;
    }

2. 利用StringBuilder的reserve方法

public static boolean isPalindrome(int num){
   StringBuilder sb = new StringBuilder(String.valueOf(n));
   return sb.toString().equals(builder.reverse().toString());
}

3.判断整数的前半部分与后半部分是否相等,不用转换

public static boolean isPalindrome(int num){
        if (num<0 || (num!=0 && num%10 == 0)) return false;
        int rev = 0;
        while (num > rev){
            rev = rev*10 + num%10;/低位逆序
            num = num/10; //高位
        }
        return (num == rev || num == rev/10);
    }

猜你喜欢

转载自blog.csdn.net/weixin_39296576/article/details/90342285