使用Java编写一个判断字符串是否为回文的函数
发布时间:2023-08-01 16:40:43
下面是一个Java编写的判断字符串是否为回文的函数。
public class PalindromeChecker {
public static boolean isPalindrome(String str) {
// 忽略字符串中的非字母和非数字字符,并将字母转换为小写
String processedStr = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
// 使用双指针方法判断字符串是否为回文
int left = 0;
int right = processedStr.length() - 1;
while (left < right) {
if (processedStr.charAt(left) != processedStr.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String str1 = "A man, a plan, a canal, Panama!";
System.out.println(isPalindrome(str1)); // 输出:true
String str2 = "race car";
System.out.println(isPalindrome(str2)); // 输出:true
String str3 = "Hello World";
System.out.println(isPalindrome(str3)); // 输出:false
}
}
以上代码中的isPalindrome函数首先对输入的字符串进行处理,将非字母和非数字字符去除,并将字母转换为小写。然后使用双指针方法判断处理后的字符串是否为回文,即从字符串的两端开始向中间遍历,如果发现不相等的字符,则说明字符串不是回文,返回false。如果遍历结束时没有发现不相等的字符,则说明字符串是回文,返回true。
在main函数中,我们使用了几个不同的字符串作为测试案例,分别输出判断结果。例如,对于字符串"A man, a plan, a canal, Panama!",去除非字母和非数字字符后的字符串为"amanaplanacanalpanama",它是一个回文字符串,因此isPalindrome函数会返回true。
