Zadanie z palindromami w javie

0

Ogólnie rozwiązuje sobie zadanie o treści:Podaj wszystkie liczby palindromiczne z pliku liczby.txt, w kolejności, w jakiej występują
w tym pliku. W tym problem że zawiesiło mnie w tym miejscu i nie wiem co dalej zrobić. Pomoże ktoś ? :D

public static void main(String[] args) throws FileNotFoundException {
         File file = new java.io.File("liczby.txt");
         Scanner in = new Scanner(file);
         String [] numbs= new String [1000];
         String word;
         for(int i = 0;i<numbs.length;i++){
             numbs[i]=in.nextLine();
             word = numbs[i];
             int a=word.length();
             for(int j =0;j<word.length();j++){
                 if(word.charAt(i) == word.charAt(a)){

                 }
                     
             }
         }
         
}
}
1

Kilka kosmetycznych zmian.

  1. Chciałeś napisać
if(word.charAt(j) == word.charAt(a-j-1)){
  1. Zmień tez warunek na nierówność i wtedy powinieneś wyjść z pętli - słowo nie jest palindromem. Najlepiej wynieś to do metody prywatnej typu boolean isPalindrome(String s)

  2. Za wcześnie przypisujesz to słowo do tablicy, zrób to dopiero po tym jak wiesz, że słowo jest palindromem.

0

@Charles_Ray: można też ten warunek umieścić w forze o ile się nie mylę:

    static boolean isPalindrome(String number) {
        for(int i=0; i<=number.length() - i - 1; i++) {
           [...]
        }
        return true;
    }

Dodatkowo przed rozpoczęciem przetwarzania bym sprawdził czy liczba jest na pewno liczbą, tj Character.isDigit(char)

PS. Czy metoda reverse() ze StringBuilder nie załatwi tego samego? ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1