Java判断回文字符串
时间: 2025-01-09 22:39:47 浏览: 5
### Java 实现判断回文字符串
#### 方法一:双指针法
通过设置两个指针分别指向字符串的头部和尾部,逐步向中心靠拢并对比对应位置上的字符。这种方法能够有效地减少不必要的计算。
```java
public class PalindromeChecker {
public static boolean isPalindrome(String str) {
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left++) != str.charAt(right--)) {
return false;
}
}
return true;
}
}
```
此段代码展示了如何利用双指针对给定字符串进行回文检测[^4]。
#### 方法二:反转字符串逐位比较
该方式先将原字符串逆序处理得到一个新的字符串副本,再依次遍历两者之间每一位字符是否一致完成判定操作。
```java
public class PalindromeCheckerReverseCompare {
private static boolean checkPalindromeByReversingString(String inputStr){
String reversedStr = new StringBuilder(inputStr).reverse().toString();
for(int index=0;index<inputStr.length();++index){
char originalChar=inputStr.charAt(index);
char reverseChar=reversedStr.charAt(index);
if(originalChar!=reverseChar){
return false;
}
}
return true;
}
public static void main(String[] args) {
System.out.println(checkPalindromeByReversingString("racecar")); // 输出: true
System.out.println(checkPalindromeByReversingString("hello")); // 输出: false
}
}
```
上述例子说明了另一种基于字符串翻转后的逐字节对照来进行回文检验的技术[^1].
#### 方法三:首尾字符直接比较
这里介绍了一种更为简洁直观的办法——仅需构建一个辅助函数用于递归地检查两端字符直至相遇为止即可得出结论。
```java
public class SimplePalindromeCheck {
public static boolean simpleIsPalindrome(String word, int start, int end) {
if(start >= end) {return true;}
if(word.charAt(start)!=word.charAt(end)){
return false;
}else{
return simpleIsPalindrome(word,start+1,end-1);
}
}
public static void main(String []args){
System.out.println(simpleIsPalindrome("level",0,"level".length()-1)); // 输出:true
System.out.println(simpleIsPalindrome("world",0,"world".length()-1));// 输出:false
}
}
```
这段程序实现了最基础也是最容易理解的一种回文测试逻辑[^3].
阅读全文