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

编写Java函数,检查输入的字符串是否为回文字符串

发布时间:2023-07-01 20:05:09

回文字符串是指正序和逆序相同的字符串。编写Java函数来检查输入的字符串是否是回文字符串可以按照以下步骤进行:

1. 创建一个名为isPalindrome的函数,该函数接受一个字符串作为参数,并返回一个布尔值。

public static boolean isPalindrome(String str) {
    // TODO: 实现代码
}

2. 在函数中,首先去除字符串中的非字母和数字字符,只保留字母和数字字符,这样比较时会更准确。可以使用正则表达式和replaceAll函数来实现。

str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();

3. 接下来,初始化两个指针,一个指向字符串的开头,一个指向字符串的末尾。

int start = 0;
int end = str.length() - 1;

4. 使用一个循环来遍历字符串中的字符,比较开头和末尾指针所指向的字符是否相等。

while (start < end) {
    if (str.charAt(start) != str.charAt(end)) {
        return false;
    }
    start++;
    end--;
}

5. 如果循环结束时没有返回false,则说明字符串是回文字符串,返回true

return true;

最终的完整代码如下:

public static boolean isPalindrome(String str) {
    str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
    
    int start = 0;
    int end = str.length() - 1;
    
    while (start < end) {
        if (str.charAt(start) != str.charAt(end)) {
            return false;
        }
        start++;
        end--;
    }
    
    return true;
}

可以使用以下代码来测试该函数:

public static void main(String[] args) {
    System.out.println(isPalindrome("A man, a plan, a canal: Panama")); // true
    System.out.println(isPalindrome("race a car")); // false
    System.out.println(isPalindrome("12321")); // true
}

输出结果应为:

true
false
true

该函数将返回true如果输入的字符串是回文字符串,返回false如果输入的字符串不是回文字符串。