回文数检测:如何在Java中编写检查回文数的函数?
发布时间:2023-06-05 04:11:35
回文数是指正序与反序相同的数字,例如121、1221、12321等等。在Java中编写检查回文数的函数可以用不同的方法。
方法1:利用StringBuilder的reverse()方法
该方法先将数字转换成字符串,然后用StringBuilder的reverse()方法将字符串倒序排列,最后判断倒序的字符串和正序的字符串是否相同。
代码实现示例:
public static boolean isPalindrome(int number){
String str = String.valueOf(number);
StringBuilder sb = new StringBuilder(str);
String reversedStr = sb.reverse().toString();
return str.equals(reversedStr);
}
方法2:用循环判断
该方法将数字的各个位数存入一个数组中,然后用两个指针i和j从两端向中间遍历,判断是否相同。
代码实现示例:
public static boolean isPalindrome(int number){
// 将数字的各个位数存入数组中
int[] digits = new int[10];
int count = 0;
while(number > 0){
digits[count++] = number % 10;
number /= 10;
}
// 用两个指针从两端向中间遍历
int i = 0, j = count - 1;
while(i < j){
if(digits[i] != digits[j]){
return false;
}
i++;
j--;
}
return true;
}
方法3:将数字转换成字符串后使用charAt()方法
该方法将数字转换成字符串,然后用charAt()方法获取字符串的每个字符,并用两个指针i和j从两端向中间遍历,判断是否相同。
代码实现示例:
public static boolean isPalindrome(int number){
String str = String.valueOf(number);
int i = 0, j = str.length() - 1;
while(i < j){
if(str.charAt(i) != str.charAt(j)){
return false;
}
i++;
j--;
}
return true;
}
以上三种方法均可用来检查回文数,具体使用哪种方法可以根据需要进行选择,如性能、可读性等方面的考虑。
