在Java中如何利用函数判断一个字符串是否为回文字符串?
发布时间:2023-09-12 14:11:29
在Java中,可以通过以下方法利用函数判断一个字符串是否为回文字符串:
1. 定义一个函数,例如 isPalindrome(String str),用于判断输入的字符串 str 是否为回文字符串。
2. 首先,判断字符串长度是否为偶数,如果是偶数,则肯定不是回文字符串,直接返回 false。
3. 为了忽略字符串中的空格和大小写,可以先将字符串转换为小写,并使用 str.replaceAll("\\s+", "") 将字符串中的空格去除掉。
4. 创建两个指针,一个指向字符串的起始位置,一个指向字符串的末尾位置。
5. 使用一个循环,循环条件为起始指针小于末尾指针:
- 在每一次循环中,判断起始指针位置的字符是否与末尾指针位置的字符相等,如果不相等,则返回 false。
- 如果相等,则将起始指针向后移动一位,末尾指针向前移动一位,继续下一轮循环。
6. 如果循环结束后,起始指针大于等于末尾指针,则说明字符串是回文字符串,返回 true。
以下是完整的代码示例:
public class PalindromeChecker {
public static boolean isPalindrome(String str) {
// 判断字符串长度是否为偶数
if (str.length() % 2 == 0) {
return false;
}
// 去除空格并转换为小写
str = str.toLowerCase().replaceAll("\\s+", "");
// 创建指针
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) {
String str = "A man a plan a canal Panama";
System.out.println(isPalindrome(str)); // 输出 true
String str2 = "Hello World";
System.out.println(isPalindrome(str2)); // 输出 false
}
}
这段代码中,isPalindrome 函数会把输入字符串中的空格去除,然后忽略大小写,利用双指针方法判断是否为回文字符串。最后在 main 函数中,分别示范了一个回文字符串和一个非回文字符串的判断结果。
