Auf Palindrom testen


#1
Ich möchte gerne das was im ersten Textfeld steht auf ein Palimdrom testen und darauffolgend eine Nachricht im zweiten Textfeld ausgeben. Was mache ich falsch? Hier der Code:
private void palindrom() {
String eingabe = jTextFieldEingabe.getText();
String ausgabe = jTextFieldAusgabe.getText();
int anzahl = eingabe.length();
String rueckwaerts = eingabe.substring(anzahl,0);
String vorwaerts = eingabe.substring(0,anzahl);
if (rueckwaerts == vorwaerts) {
jTextFieldAusgabe.setText("Ein Palindrom ist vorhanden!");
jTextFieldEingabe.setText("");
} else {
jTextFieldAusgabe.setText("Kein Palindrom ist vorhanden!");
jTextFieldEingabe.setText("");
}
}
 

melmager

Erfahrenes Mitglied
#2
also mit substring kommst du hier nicht weiter - der dreht ein String nicht um

du wirst um eine Schleife die Zeichen für zeichen prüft nicht herum kommen.

Code:
int posanf = 0;
int posend = eingabe.length()-1;

while ((eingabe.charAt(posanf) == eingabe.charAt(posend)) &&  (posend > 0)) {
  posanf++;
  posend--;
}

if (posend == 0 ) {
jTextFieldAusgabe.setText("Ein Palindrom ist vorhanden!");
} else {
jTextFieldAusgabe.setText("Kein Palindrom ist vorhanden!");
}
 

HonniCilest

Erfahrenes Mitglied
#3
Doch das geht auch ohne Schleife.

Java:
String rueckwaerts = new StringBuilder(vorwaerts).reverse().toString();
if(rueckwaerts.equals(vorwaerts)) {
    System.out.println("Palindrom festgestellt");
}
 

Neue Beiträge