Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
unten seht ihr mein Programm, welches bei Eingabe einer Zeichenkette überprüfen soll, ob dieser rückwärts gesprochen, gleich klingt. Beispielsweise "sas".
Jedoch habe ich das Problem, dass ich jedes mal ein Palindrom ausgegeben bekomme, egal ob "sas" oder "saz". Woran könnte es liegen?
Danke im vorraus
Java:
importjava.text.DecimalFormat;
import ch.aplu.util.Console;
public class Bond {
public staticvoid main (String []args) {
String line4="null";
do {
Console.print("Zeichenkette eingeben: ");
String line = Console.readLine();
line = new StringBuffer(line).reverse().toString();
StringBuffer buffer = new StringBuffer(line);
String line2 = buffer.toString();
System.out.println(line);
if(line.equals(line2)) {
System.out.println("Achtung Palindrom gefunden");
}
Console.print("Nochmal spielen?:");
String line3 = Console.readLine();
if (line3.equals("ja")) {
line4="ja";
}
} while (line4.equals("ja"));
}
}
StringBuffer buffer = new StringBuffer(line);
String line2 = buffer.toString();
Mit diesen beiden Zeilen machst du aus der Stringvariablen "line" einen StringBuffer und dann aus dem StringBuffer wieder einen String "line2". Dazwischen wird nichts invertiert. Deshalb sind line und line2 inhaltsgleich.
Jedoch habe ich das Problem, dass ich jedes mal ein Palindrom ausgegeben bekomme, egal ob "sas" oder "saz". Woran könnte es liegen?
Java:
String line = Console.readLine();
line = new StringBuffer(line).reverse().toString();
StringBuffer buffer = new StringBuffer(line);
String line2 = buffer.toString();
System.out.println(line);
if(line.equals(line2)) {
Bei solchen Problemen ist es auch immer hilfreich einfach mal ein paar Konsolen-/Logausgaben einzubauen. Damit man sieht was man vergleicht etc.
Du liest einen Text ein, drehst diesen gleich um und speicherst den umgedrehten String über den eingelesen einfach drüber.
Danach erstellst du einfach einen neuen String mit gleichen Inhalt. Beim Vergleich kann natürlich nur true rauskommen.
Du drehst deinen String einfach an der falschen Stelle um
Alles klar setze nächstes mal die Tags.
Das mit dem ausgeben der einzelnen Befehle ist echt keine schlechte Idee. Werde eure Vorschläge durchgehen. Danke an alle.