Kleiner Palindromtest

Status
Nicht offen für weitere Antworten.

shino

Mitglied
hallo zusammen,
ich muss für die uni ein programm schreiben, welches einen string testet, ob es ein palindrom ist. ich hab diesen code bisher erreicht
Java:
public class Palindrome {
  public static void main(String[] args) {
    String pal = args[0].toLowerCase();
    System.out.Println(pal.isPalindrome());
  }
  public static boolean isPalindrome(String[] pal) {
    int max=pal.length;
    int i;
    for (i=0;i < pal.length/2;i++) {
      if (pal[i] != pal[max-i]) { return false;}
    }
    return true;
  }
}

jedoch gibt es mir beim kompilieren immer eine fehlermeldung bezüglich der System.out.println(pal.isPalindrome()); aus... weiss jemand wo der fehler versteckt ist bzw. wie ich ihn beheben kann?
 
Man beachte Groß- und Kleinschreibung.

EDIT: Außerdem testest du alles Mögliche, aber nicht auf Palindrom. oO Das Argument sollte wohl vom Typ String und nicht String[] sein.

Ark
 
Java:
public class Palindrome {
  public static void main(String[] args) {
    String pal = args[0].toLowerCase();
    isPalindrome(pal);
    System.out.println(pal.isPalindrome());
  }
  public static boolean isPalindrome(String pal) {
    int max=pal.length();
    int i;
    for (i=0;i < max/2;i++) {
      if (pal.charAt(i) != pal.charAt(max-i)) { return false;}
    }
    return true;
  }
}
so weit so gut, nun zickt es nur noch bei der Ausgabe rum...

wie mach ich es, das es mir, wenn der boolean true ist, ein true ausgibt und wenn der boolean false is, ein false? das müsst doch so gehn, wie ich das geschrieben hab?

edit: haha ja habs selbst rausgefunden, ich depp ^^

doch schon ergibt sich das neue problem:

wenn ichs nun teste mit einem x-beliebigen satz (z.b. test) oder so
kommt
Code:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
        at java.lang.String.charAt(String.java:686)
        at Palindrome.isPalindrome(Palindrome.java:11)
        at Palindrome.main(Palindrome.java:4)

edit: ok, habs hingekriegt... musste
Code:
pal.charAt(max-i)
durch
Code:
pal.charAt((max-1)-i) ersetzen, dann klappts :)
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.

Zurück
Oben