Javascript - JGRASP- Палиндром - PullRequest
0 голосов
/ 21 ноября 2018

Дело в том, чтобы получить строки из файлового ввода, чтобы проверить, является ли оператор палиндромом или нет.Например, если input.txt - «Мадам, я - Адам. \ N racecar \ n boat \ n 123 321 \ n 1234», то результат будет

True True False True False

Вот мой метод палиндрома:

public static boolean isPalindrome(String word){// Source: http://www.codenuclear.com/java-program-to-check-palindrome/
      String reverse = "";
      
      if(word == null){
         return false;
      }else if(word.length() == 1){
         return true;
      }
      
      for(int i = word.length()-1; i >= 0; i--){
         reverse += word.charAt(i);
      }
      
      if(word.equalsIgnoreCase(reverse)){
         return true;
      }
      
      return false;
   }

Вывод до сих пор был таким:

Ложь Правда Ложь Правда Ложь

Я думаю, что проблема в утверждении "Мадам IЯ Адам ", и заглавные буквы мешают.Как я могу запустить код, чтобы игнорировать заглавные буквы, чтобы палиндром был правдой?Я знаю, что есть метод .equalsIgnoreUpperCase () или какой-то еще.

1 Ответ

0 голосов
/ 21 ноября 2018

Сбой из-за пробелов, символа <'> и буквенного регистра в строке' Madam I'm Adam '.

Отредактируйте функцию, чтобы игнорировать эти символы и другие символы, которые вы наделилине хотите, чтобы ваш алгоритм учитывал, или, что еще лучше, используйте ascii для проверки каждого символа в строке, прежде чем проверять, является ли он палиндромом, затем преобразуйте все символы в нижний регистр, используя метод toLowerCase (), и он должен работать так, как вы этого хотитек.

...