如何使用java函数来判断一个字符串是否为回文字符串?
发布时间:2023-09-22 04:09:41
要判断一个字符串是否为回文字符串,可以通过比较字符串的前后字符来进行判断。下面是一个使用Java函数来判断一个字符串是否为回文字符串的示例代码。
public class PalindromeString {
public static boolean isPalindrome(String str) {
// 去除字符串中的空格和特殊字符,只保留字母和数字
str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
// 初始化左右指针
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.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 = "Java is fun";
System.out.println(str1 + " 是回文字符串吗?" + isPalindrome(str1));
System.out.println(str2 + " 是回文字符串吗?" + isPalindrome(str2));
}
}
运行上述代码,输出结果为:
A man, a plan, a canal, Panama! 是回文字符串吗?true Java is fun 是回文字符串吗?false
代码中的 isPalindrome 函数接受一个字符串作为参数,首先通过 replaceAll 方法去除字符串中的空格和特殊字符,并将字符串转换为小写。然后使用两个指针 left 和 right 分别指向字符串的开头和结尾。在循环中,依次比较左指针和右指针指向的字符,如果不相等,则说明字符串不是回文字符串,返回 false。如果左右指针都移动到了相同的位置,则说明字符串是回文字符串,返回 true。
