zur Begriffserklärung: http://de.wikipedia.org/wiki/Palindrom
Ich habe eine Methode geschrieben, die testen soll, ob es sich um ein Palindrome handelt oder nicht. Leider bekomme ich immer eine "false" ausgabe, obwohl ich nicht verstehe wieso.
Zuerst testet die Methode, ob die Länge des String kleiner gleich 1 ist und gibt, falls ja, true zurück. Ansonsten wird gestestet, ob der 1. und der letzte Buchstabe gleich sind. Falls ja, wie die Methode rekursiv aufgerufen mit einem String ohne Anfangs- und Endbuchstabe.
Könnte kurz jemand einen Blick drauf werfen und mir andeuten, wo ich einen Fehler gemacht habe? Oder wie ich herausfinden kann, wo der Fehler liegt?
Vielen Dank!
Ich habe eine Methode geschrieben, die testen soll, ob es sich um ein Palindrome handelt oder nicht. Leider bekomme ich immer eine "false" ausgabe, obwohl ich nicht verstehe wieso.
Zuerst testet die Methode, ob die Länge des String kleiner gleich 1 ist und gibt, falls ja, true zurück. Ansonsten wird gestestet, ob der 1. und der letzte Buchstabe gleich sind. Falls ja, wie die Methode rekursiv aufgerufen mit einem String ohne Anfangs- und Endbuchstabe.
Könnte kurz jemand einen Blick drauf werfen und mir andeuten, wo ich einen Fehler gemacht habe? Oder wie ich herausfinden kann, wo der Fehler liegt?
Vielen Dank!
Code:
public class Palindrome {
public boolean isPalindrome(String text)
{
if(text.length() <= 1) return true;
if(text.substring(0, 1).equalsIgnoreCase(text.substring(text.length()-1, text.length() )))
{
// zu testzwecken...
System.out.println(text.substring(1,text.length()-1));
isPalindrome(text.substring(1,text.length()-1));
}
return false;
}
public static void main(String[] args)
{
Palindrome p = new Palindrome();
System.out.println(p.isPalindrome("rentner"));
}
}