metoda String tablicowa

0

Witam, od razu powiem, nie chce gotowca tylko informacje jak to poprawić
treść zad sprawdza, czy wszystkie napisy w tablicy są palindromami;

static boolean samePalindromy(String[] napisy) {
                String napisy = JOptionPane.showInputDialog("Podaj napis ");
                StringBuilder wyraz = new StringBuilder(napisy);
                int długość_napisu = 1;
                int długość_wyrazu = wyraz.length() ;
                if (długość_napisu < długość_wyrazu ){ 
                    if(długość_wyrazu[i] = długość_napisu[j]){
                        długość_napisu = długość_napisu +1;
                        długość_wyrazu = długość_wyrazu -1;
                    }else{
                        JOptionPane.showMessageDialog(null, wyraz + " nie jest palindromem");
                          }
                    
                }else{
                    JOptionPane.showMessageDialog(null, wyraz + " jest palindromem");
                }
            
        }
1

Tu nie ma co poprawiać, to jest jedno wielkie wtf:

  • dwie różne zmienne o tej samej nazwie,
  • funkcja otrzymuje jako parametr tablicę napisów i te tablicę ma analizować, a nie zadawać pytania użytkownikowi,
  • funkcja ma zwracać wartość logiczną (true jeśli wszystkie elementy tablicy są palindromami), a nie zwraca nic,
  • funkcja korzysta z niezadeklarowanych zmiennych i oraz j,
  • funkcja nawet nie próbuje sprawdzać czy wpisany napis jest palindromem.
    Druga sprawa, co nazywasz palindromem?
    "kajak" jest palindromem.
    A "Kajak" jest palindromem, tzn. czy wielkość liter jest istotna?
    A "kajak." jest palindromem, tzn. czy znaki interpunkcyjne mają znaczenie?
0

Napisz osobną funkcję do testowania czy coś jest palindromem a potem ja wywołuj w pętli.

0
if(długość_wyrazu[i] = długość_napisu[j]){

A i i j to co? Nie ma ich nigdzie zdefiniowanych. Tak czy inaczej, to powinno być w pętli. Zresztą to nie jedyny problem z tym kodem - powinna być na przykład druga pętla idąca po wszystkich wyrazach i testująca każdy czy jest palindromem. Ogólnie, nie ma to wiele wspólnego z zadaniem :P.

Jeśli chodzi o sprawdzanie czy wyraz jest palindromem, mógłbym Ci napisać od ręki kilka rozwiązań, ale znacznie bardziej skorzystasz jeśli wpiszesz w google java is palindrome czy coś takiego i sam znajdziesz rozwiązanie w kilka chwil.

Ogólny schemat kodu:

bool wszystkiePalindromy(wyrazy):
    foreach wyraz in wyrazy:
        if not jestPalindromem(wyraz):
            return False
    return True

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