用Java代码完成上述问题
时间: 2024-12-10 09:54:25 浏览: 5
当然,以下是使用Java编写的函数,用于检查一个字符串是否为回文:
```java
public class Main {
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; // 如果发现不同的字符,立即返回false
}
left++;
right--;
}
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(" ")); // 输出:true
}
}
```
在这个Java代码中,我们首先使用正则表达式移除非字母数字字符,并将整个字符串转为小写。然后使用两个指针,一个从左向右移动,另一个从右向左移动,同时比较对应的字符。如果找到不匹配的字符,就立即返回 `false`,否则当两个指针相遇时说明字符串是回文,返回 `true`。
阅读全文