编写Java函数,检查输入的字符串是否为回文字符串
发布时间:2023-07-01 20:05:09
回文字符串是指正序和逆序相同的字符串。编写Java函数来检查输入的字符串是否是回文字符串可以按照以下步骤进行:
1. 创建一个名为isPalindrome的函数,该函数接受一个字符串作为参数,并返回一个布尔值。
public static boolean isPalindrome(String str) {
// TODO: 实现代码
}
2. 在函数中,首先去除字符串中的非字母和数字字符,只保留字母和数字字符,这样比较时会更准确。可以使用正则表达式和replaceAll函数来实现。
str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
3. 接下来,初始化两个指针,一个指向字符串的开头,一个指向字符串的末尾。
int start = 0; int end = str.length() - 1;
4. 使用一个循环来遍历字符串中的字符,比较开头和末尾指针所指向的字符是否相等。
while (start < end) {
if (str.charAt(start) != str.charAt(end)) {
return false;
}
start++;
end--;
}
5. 如果循环结束时没有返回false,则说明字符串是回文字符串,返回true。
return true;
最终的完整代码如下:
public static boolean isPalindrome(String str) {
str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
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) {
System.out.println(isPalindrome("A man, a plan, a canal: Panama")); // true
System.out.println(isPalindrome("race a car")); // false
System.out.println(isPalindrome("12321")); // true
}
输出结果应为:
true false true
该函数将返回true如果输入的字符串是回文字符串,返回false如果输入的字符串不是回文字符串。
