Итак, когда я запускаю этот код с любым словом, он всегда возвращает false. Первая строка принимает слово, а затем изменяется на нижний регистр. Затем я строю новую строку из нее, чтобы сравнить ее с другой строкой, которая добавляется как обратная сторона исходного слова. Разве я ничего не вижу, или вы можете сказать мне, что с ним не так?Проверка, является ли слово Палиндром или нет
public class Palindromes
{
\t public static void main(String[] args)
\t {
\t \t int count = Integer.parseInt(args[0]);
\t \t for(int i = 1; i <= count; i++)
\t \t {
\t \t \t System.out.print(isPalindrome(args[i]) + " ");
\t \t }
\t }
\t public static boolean isPalindrome(String s)
\t {
\t \t String str = s.toLowerCase();
\t \t StringBuilder orig_str = new StringBuilder(str);
\t \t StringBuilder revStr = new StringBuilder();
\t \t for (int i = str.length()-1; i >= 0; i--)
\t \t {
\t \t \t revStr.append(orig_str.charAt(i));
\t \t }
\t \t boolean isPal = (revStr == orig_str);
\t \t return isPal;
\t } \t \t
}
Хорошо, я изменить логическое значение для revStr.equals (orig_str), но она по-прежнему дает мне ложное значение. – Santo
@Santo Исправлено. Я не понял, что 'StringBuilder' не переопределяет' equals'. – Eran
Я закончил с заменой revStr на строку после добавления ее. их сравнение отлично работает. Большое спасибо. – Santo