写一个回文检测方法,使用java语言
时间: 2023-12-06 22:39:34 浏览: 68
可以使用双指针法来实现回文检测。具体实现方式如下:
```java
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;
}
```
首先,我们需要将字符串中的空格和标点符号去除,并将字符串转换为小写字母,这样可以避免大小写的问题。接着,我们使用双指针分别指向字符串的首尾位置,每次比较两个指针所指的字符是否相同,如果不相同就返回false,否则将指针向中间移动,直到左指针大于等于右指针为止。
可以使用以下代码来测试上述方法:
```java
public static void main(String[] args) {
String str1 = "A man, a plan, a canal, Panama!";
String str2 = "race a car";
System.out.println(isPalindrome(str1)); // true
System.out.println(isPalindrome(str2)); // false
}
```
阅读全文