java回文字符串判斷的方法有哪些

小億
119
2023-10-16 17:40:34

Java中判斷回文字符串的方法有以下幾種:

  1. 使用StringBuilder的reverse()方法:將字符串轉(zhuǎn)換為StringBuilder對(duì)象,然后使用reverse()方法將字符串反轉(zhuǎn),最后判斷反轉(zhuǎn)后的字符串與原字符串是否相等。
public static boolean isPalindrome(String str) {
StringBuilder sb = new StringBuilder(str);
return str.equals(sb.reverse().toString());
}
  1. 使用遞歸:判斷字符串的第一個(gè)字符與最后一個(gè)字符是否相等,如果相等,則遞歸判斷去掉第一個(gè)和最后一個(gè)字符的子串是否是回文字符串。
public static boolean isPalindrome(String str) {
if (str.length() <= 1) {
return true;
}
if (str.charAt(0) == str.charAt(str.length() - 1)) {
return isPalindrome(str.substring(1, str.length() - 1));
} else {
return false;
}
}
  1. 使用雙指針:分別從字符串的開(kāi)頭和結(jié)尾設(shè)置兩個(gè)指針,然后依次比較指針指向的字符是否相等,直到兩個(gè)指針相遇或者不相等。
public static boolean isPalindrome(String str) {
int i = 0, j = str.length() - 1;
while (i < j) {
if (str.charAt(i) != str.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}

0