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

用Java写一个函数来检查一个字符串是否为回文字符串

发布时间:2023-06-04 11:48:32

回文字符串是指正反读都相同的字符串,例如“level”和“racecar”都是回文字符串。在Java中,我们可以编写一个函数来检查给定的字符串是否为回文字符串。

首先,我们需要定义一个方法来接收一个字符串参数,然后将其转换为字符数组。我们可以使用Java的toCharArray()方法来实现这一点:

public static boolean isPalindrome(String str) {
    char[] arr = str.toCharArray();
    //检查arr是否为回文字符串
}

接下来,我们需要编写一些代码来检查字符数组是否为回文字符串。一种简单的方法是创建两个指针,一个指向字符串的开头,一个指向结尾,并比较它们所指向的字符是否相同。如果字符不同,则该字符串不是回文字符串。

public static boolean isPalindrome(String str) {
    char[] arr = str.toCharArray();
    int start = 0;
    int end = arr.length - 1;
    while (start < end) {
        if (arr[start] != arr[end]) {
            return false;
        }
        start++;
        end--;
    }
    return true;
}

在这个示例中,我们在while循环中使用两个指针来比较字符。如果字符不同,则返回false。如果循环结束后没有返回false,则该字符串是回文字符串,因此返回true。

现在,我们可以使用这个方法来检查一个字符串是否为回文字符串:

String str1 = "level";
String str2 = "racecar";
String str3 = "hello";
if (isPalindrome(str1)) {
    System.out.println(str1 + " is a palindrome");
} else {
    System.out.println(str1 + " is not a palindrome");
}
if (isPalindrome(str2)) {
    System.out.println(str2 + " is a palindrome");
} else {
    System.out.println(str2 + " is not a palindrome");
}
if (isPalindrome(str3)) {
    System.out.println(str3 + " is a palindrome");
} else {
    System.out.println(str3 + " is not a palindrome");
}

运行结果如下:

level is a palindrome
racecar is a palindrome
hello is not a palindrome

从以上实例中可以看到,该函数可以正确地检查一个字符串是否为回文字符串。