文字列パлиндローム判定方法
Javaで回文の文字列を判定する方法
- StringBuilderのreverseメソッドを利用する:文字列をStringBuilderオブジェクトに変換して、reverseメソッドで文字列を反転させて、反転後の文字列と元の文字列が等しいかどうかを判定する。
public static boolean isPalindrome(String str) {
StringBuilder sb = new StringBuilder(str);
return str.equals(sb.reverse().toString());
}
- 再帰を用いる:文字列の最初の文字と最後の文字が同じかどうかを判断し、同じであれば最初の文字と最後の文字を除いた部分文字列が回文かどうかを再帰的に判断する。
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;
}
}
- 両端からポインタを移動させながら、ポインタが指す文字が同じかどうかを比較し、一致したり不一致だったりするまで続ける方法
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;
}