实现Java函数以检查是否为回文字符串。
发布时间:2023-07-03 08:11:58
回文字符串是指从左到右和从右到左读取都相同的字符串。例如,"level"、"racecar"和"madam"都是回文字符串。
下面是一个实现Java函数来检查字符串是否为回文的示例:
public class PalindromeChecker {
public static boolean isPalindrome(String s) {
// 去除空格和标点符号,并将字符串转换为小写
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
int left = 0;
int right = s.length() - 1;
while (left < right) {
if (s.charAt(left) != s.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String str1 = "level";
String str2 = "racecar";
String str3 = "Hello World";
System.out.println(str1 + " is a palindrome: " + isPalindrome(str1));
System.out.println(str2 + " is a palindrome: " + isPalindrome(str2));
System.out.println(str3 + " is a palindrome: " + isPalindrome(str3));
}
}
在这个例子中,isPalindrome函数接受一个字符串作为参数,并返回一个布尔值,表示该字符串是否为回文。函数首先通过使用正则表达式[^a-zA-Z0-9]将字符串中的非字母和数字字符替换为空字符串,并将字符串转换为小写。然后,使用两个指针left和right分别指向字符串的开头和结尾。在循环中,比较指针位置处的字符是否相同,如果不相同,则返回false。如果循环结束后没有返回false,则表示字符串是回文,返回true。
在main函数中,我们通过调用isPalindrome函数来检查三个字符串是否为回文,并将结果打印出来。
运行上述代码,将会输出以下结果:
level is a palindrome: true racecar is a palindrome: true Hello World is a palindrome: false
通过这个例子,我们可以实现一个简单而有效的Java函数来检查字符串是否为回文。
