pta 判断回文字符串java
时间: 2024-12-30 22:14:15 浏览: 13
### 使用 Java 判断回文字符串
为了判断一个字符串是否为回文字符串,在Java中有多种方法可以实现这一功能。下面介绍一种较为常见的利用`StringBuilder`类来反转字符串并进行比较的方法[^1]。
```java
import java.util.Scanner;
public class PalindromeCheck {
public static void main(String[] args) {
System.out.println("请输入一个字符串");
Scanner input = new Scanner(System.in);
String originalString = input.nextLine();
// 创建一个新的StringBuilder对象并将原始字符串传递给它
StringBuilder reversedBuilder = new StringBuilder(originalString);
// 反转字符串构建器的内容
String reversedString = reversedBuilder.reverse().toString();
// 如果原字符串等于其反转后的版本,则该字符串是回文的
if (originalString.equals(reversedString)){
System.out.println(originalString + " 是回文字符串");
} else{
System.out.println(originalString + " 不是回文字符串");
}
}
}
```
另一种方式则是通过双指针法逐个字符对比,这种方法能够忽略非字母数字字符以及大小写的差异[^3]:
```java
public class EnhancedPalindromeChecker {
/**
* 判断输入的字符串是否为有效的回文串。
*
* @param s 输入待检测的字符串
* @return 若为有效回文返回true;反之则false
*/
public static boolean isValidPalindrome(String s){
// 将所有大写字母转换成小写,并移除非字母数字字符
s = s.toLowerCase().replaceAll("[^a-z0-9]", "");
int start = 0;
int end = s.length() - 1;
while(start < end){
if(s.charAt(start++) != s.charAt(end--))
return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(isValidPalindrome("A man, a plan, a canal: Panama")); // 输出应为true
}
}
```
这两种方法各有优劣,前者简单直观易于理解,后者更加灵活适用于更广泛的场景下验证回文特性。
阅读全文