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);
}