So drucken Sie mehrere Zeichenfolgen rückwärts in Java
Ich versuche, eine Datei zu nehmen voller strings Lesen, dann drucken Sie ein paar Dinge:
- Der string
- Den string rückwärts UND Großbuchstaben
- Die Länge der Zeichenfolge
Gibt es ein paar mehr Dinge, aber ich habe noch nicht einmal gelernt, dass Punkt, und wollen nicht, jemanden zu Fragen, den code schreiben, der völlig für mich. Nach Herumspielen mit ihm für eine Weile, ich habe es fast abgeschlossen ist (ich glaube, abgesehen von ein paar Bereiche).
Das Stück, das ist tripping me up ist das Wort rückwärts. Wir sind verpflichtet, unsere Ausgabe fein säuberlich in Spalten mit prinf, aber das kann ich nicht, wenn ich Lesen jeden char zu einem Zeitpunkt. Also ich habe versucht, eine String backwardsWord = "";
und das hinzufügen von einzelnen Zeichen.
Dies ist das Stück, das ist tripping me up:
for(int i = upperCaseWord.length() - 1; i >= 0; i--)
{
backwardsWord += (upperCaseWord.charAt(i) + "");
}
Mein Problem ist, dass wenn ich drucken, das erste Wort richtig funktioniert. Jedoch, jedes Wort nach, das Hinzugefügt wird, um das Vorherige Wort.
Beispiel: wenn ich Schreibe Katze, Hund, Ratte und rückwärts, es zeigt
TAC
TACGOD
TACGODTAR
Ich natürlich wollen, es zu Lesen
TAC
GOTT
TAR
Jede mögliche Hilfe würde geschätzt.
Sind Sie der Initialisierung der vaeiable bacKwardsWord jedes mal vor der Schleife
Sie sollten sich in
StringBuilder.reverse()
Sein wird in der Lage sein, alles zu tun, Ihre Umkehrung für Sie leicht.InformationsquelleAutor S12 | 2013-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie deine variable
backwardsWord
ist immer gefolgt von einem Charakter ohne reset zwischen den Wörtern. Die einfachste Lösung ist das löschen desbackwardsWord
kurz vor der Schleife, indem Sie Sie auf eine leere Zeichenfolge.Wenn Sie den Aufbau einer Zeichenfolge ein Zeichen in einer Zeit, die Sie verwenden werden, sehr viel Speicher, da Java-Strings sind unveränderlich.
Dazu noch effizienter nutzen eine StringBuilder statt. Dies ist für den Aufbau der Charaktere gefällt, was du tust. Sobald Sie fertig sind können Sie die
toString
Methode, um den String aus.Dies hat den zusätzlichen Vorteil, dass das zurücksetzen der backwardsWord jeder Zeit.
Schließlich, da Ihr Ziel ist es, den String in umgekehrter wir tatsächlich tun können, ohne eine Schleife um alle wie gezeigt, in dieser Antwort
Erzeugt einen neuen
StringBuilder
mit den Charakteren ausupperCaseWord
, kehrt die Zeichen speichert dann die Letzte saite inbackwardsWord
InformationsquelleAutor n00begon
Wo sind Sie deklarieren die Zeichenfolge backwardsWord?
Wenn dir nicht klar, dass es zwischen Worten und dann die Speicher-Adressraum zugewiesen, der string enthält den zuvor hinzugefügten Zeichen.
Sicherstellen, dass Sie werfen in einem backwardsWord = ""; zwischen Worten, um es zurückzusetzen Wert und dass sollte dein problem lösen.
Ohne zu sehen, mehr von deinem code kann ich Ihnen nicht genau sagen, wo, um es zu stellen.
InformationsquelleAutor miss.serena
Dieser sollte den job tun ->
Ja und das Ergebnis ist der - SEL-SELBARÉSIM
es funktioniert wie erwartet..
InformationsquelleAutor dganesh2002