/**
*** 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。**
*
- 示例 1:
- 输入: 121
- 输出: true
- 示例 2:
- 输入: -121
- 输出: false
- 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
- 示例 3:
- 输入: 10
- 输出: false
- 解释: 从右向左读, 为 01 。因此它不是一个回文数。
*/
public static boolean isPalindrome(int x){
StringBuilder str=new StringBuilder();
if(x<0){
return false; //负数直接不成立
}
else{
str.append(x);
str.reverse(); //倒转字符串
try {
if(x==Integer.parseInt(str.toString())){
return true;
}
}
catch (NumberFormatException e){ //int型范围(-2147483648——2147483647)防止转换后溢出发生异常;
return false;
}
}
return false;
}
NumberFormatException:
数据转换异常 字符串带着字符转整数等 或者 转换后溢出!!!
——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
还可以不转换成字符串只需要翻转一半数值和之前比较就可以!!
例如 1221 翻转21变成12 和前面一半比较就可以!!!
若字符个数为奇数则最中间的数无需考虑!
例如12321 3无需考虑!!
若为负数直接 return false!!!!!
翻转后的数值是否大于int能表示的最大数来判断是否发生了异常!!
算法代码后续添加!