程序分析
方法1:将数据转换为字符串来处理
private static boolean isPalindrome(int number) {
String str1 = String.valueOf(number); //int型数据转换为String型
StringBuilder strBui = new StringBuilder(str1); //str1转换为StringBuilder
String str2 = strBui.reverse().toString(); //调用用StringBuild的reverse()方法,反转字符串str1为str2
// 判断str1与str2字符串字面量是否相等
if (str1.equals(str2))
return true;
else
return false;
}
方法2:由于数据长度固定,可由个十位分别与千万位进行比较
private static Boolean isPalindrome2(int number) {
int onesPlace = number%10; //个位
int tenPlace = (number/10)%10;//十位
int thousandPlace = (number/1000)%10;//千位
int tenThousandPlace = (number/10000)%10;//万位
if (onesPlace == tenThousandPlace && tenPlace == thousandPlace){
return true;
}else {
return false;
}
}
代码实现
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number;
do {
System.out.println("请输入数字:");
number = input.nextInt();
if (number < 99999 && number > 10000){
System.out.println("是否为回文数字:"+isPalindrome2(number));
}else{
System.out.println("数据不合理,请重新输入!");
}
}while(number > 99999 || number < 10000);
}
// 回文数据判断方法1
private static boolean isPalindrome1(int number) {
String str1 = String.valueOf(number); //int型数据转换为String型
StringBuilder strBui = new StringBuilder(str1); //str1转换为StringBuilder
String str2 = strBui.reverse().toString(); //调用用StringBuild的reverse()方法,反转字符串str1为str2
// 判断str1与str2字符串字面量是否相等
if (str1.equals(str2))
return true;
else
return false;
}
// 回文数据判断方法2
private static Boolean isPalindrome2(int number) {
int onesPlace = number%10; //个位
int tenPlace = (number/10)%10;//十位
int thousandPlace = (number/1000)%10;//千位
int tenThousandPlace = (number/10000)%10;//万位
if (onesPlace == tenThousandPlace && tenPlace == thousandPlace){
return true;
}else {
return false;
}
}
}