9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
我的思路:
1.通过取整运算和求余运算获取最高位和最低位,while循环得到所有数字
2.转化成字符串,通过for循环charAt()方法遍历字符串
public class question9 {
/*判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。*/
//方案一 整数
public boolean ispalindrome1(int x) {
boolean flag=true;
if(x<0) flag=false;
int i=1;
while(x/i>=10) i*=10; //获取总位数
while(x>9) { //>9 为不计算奇数中间数
int high=x/i; //最高位
int low=x%10; //最低位
if(high!=low) flag=false;
x=x%i/10;
i/=100;
System.out.println(high+"====="+low);
}
System.out.println(flag);
return flag;
}
//方案二 字符串
public boolean isPalindrome(int x) {
String str = String.valueOf(x);
boolean flag=true;
for(int i=0;i<str.length()/2;i++){// 除以2为不计算奇数中间数
int j=str.length()-1-i;
if(str.charAt(i)!=str.charAt(j))
flag=false;
System.out.println(str.charAt(i)+"====="+str.charAt(j));
}
System.out.println(flag);
return flag;
}
public static void main(String[] args) {
question9 a = new question9();
a.isPalindrome(2233222);
a.ispalindrome1(1234579);
}
}