第一种:
将整型转为char型数组两两进行判断
public static boolean judgePalindrome(int n){ char[] items=String.valueOf(n).toCharArray(); boolean flag=false; int i ; int mid=(items.length-1)/2; for ( i = 0;i<=mid;i++){ if (items[i]!=items[items.length-1-i]) break; } if (i==mid+1) flag=true; return flag; }
第二种:
利用StringBuilder类型的reverse方法进行逆转 再判断
public static boolean judgePalindrome(int n){ StringBuilder builder=new StringBuilder(String.valueOf(n)); return builder.toString().equals(builder.reverse().toString()); }
第三种:
最高位等于个位,第二高位等于十位……不过只进行到中间位就停止
public static boolean judgePalindrome(int n){ if (n<0 || (n!=0 &&n%10==0)) return false; int rev = 0; while (n>rev){ rev = rev*10 + n%10; n = n/10; } return (n==rev || n==rev/10); }