欢迎访问宙启技术站
智能推送

回文数检测:如何在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;
}

以上三种方法均可用来检查回文数,具体使用哪种方法可以根据需要进行选择,如性能、可读性等方面的考虑。