编写Java函数以判断字符串是否是回文
发布时间:2023-07-06 13:54:17
一个字符串称之为回文,是指这个字符串从左向右读和从右向左读是一样的。编写一个Java函数来判断给定的字符串是否是回文。
Java中的字符串是不可变的,因此我们可以使用两个指针,分别指向字符串的 个字符和最后一个字符,比较这两个字符是否相同,依次向中间移动指针,直到两个指针相遇。
以下是一个示例的Java代码来实现这个功能:
public class Palindrome {
public static boolean isPalindrome(String str) {
// 去除非字母和数字字符,并转换为小写
String cleanStr = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
int left = 0;
int right = cleanStr.length() - 1;
while (left < right) {
if (cleanStr.charAt(left) != cleanStr.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
public static void main(String[] args) {
String str1 = "A man, a plan, a canal, Panama";
String str2 = "hello world";
System.out.println(isPalindrome(str1)); // true
System.out.println(isPalindrome(str2)); // false
}
}
在这个示例中,我们首先使用正则表达式[^a-zA-Z0-9]去除字符串中的非字母和数字字符,然后将字符串转换为小写。之后,我们使用两个指针left和right指向字符串的 个字符和最后一个字符,并依次比较这两个字符是否相同。如果比较过程中发现不相同的字符,则返回false。如果一直比较到两个指针相遇,则返回true,表示字符串是回文。
在main函数中,我们给出了两个示例字符串,并调用isPalindrome函数来判断它们是否是回文。运行程序后,会输出true和false。
