回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数
方法一
通过==String.valueOf()方法把整数转换为字符串,再用toCharArray()==方法将字符串转化为字符数组,通过数组的第一个和最后一个比较是否相等判断回文。
public static boolean isPalindrome(int x) {
if(x < 0) return false; //负数不是回文
if(x < 10) return true; //个位数为回文数
String s = String.valueOf(x); //整数转字符串
char[] c = s.toCharArray(); //字符串转字符数组
int len = c.length;
boolean flag = false;
for(int i = 0; i < len / 2; i++){
if(c[i] != c[len - 1 - i]){
return false;
}
}
return true;
}
方法二
把整数的每位都拆开,再从个位开始通过计算,看最后得出的数是否与原来的数相等。
public static boolean isPalindrome(int x) {
if(x < 0) return false;
if(x < 10) return true;
int ret = x;
int y = 0,m = 0;
while(x!= 0){
m = x % 10;
y = y * 10 + m;
x /= 10;
}
return y == ret;
}