Auf Palindrom testen


Niklas102030

Grünschnabel
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
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
Doch das geht auch ohne Schleife.

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