Ich habe "Hello World"
in einer String-Variablen namens hi
.
Ich muss es drucken, aber umgekehrt.
Wie kann ich das machen? Ich verstehe, dass es eine Art Funktion gibt, die bereits in Java integriert ist und dies tut.
Verwandte: Kehren Sie jedes einzelne Wort der Zeichenfolge "Hello World" mit Java um
Antworten:
Sie können dies verwenden:
Oder verwenden Sie für Versionen vor JDK 1.5
java.util.StringBuffer
anstelle vonStringBuilder
- sie haben dieselbe API. Vielen Dank an die Kommentatoren für den Hinweis, dass diesStringBuilder
heutzutage bevorzugt wird, wenn keine Bedenken hinsichtlich der Parallelität bestehen.quelle
StringBuilder
Parallelität ist das kein Problem (und ich denke, das hat er gemeint).String hi = "Hello World";
. Also habe ich in Ihrer Antwort denken , sollte es nicht irgendwelche doppelte Anführungszeichen seinhi
. Ich meine, es sollte so seinnew StringBuilder(hi).reverse().toString()
Für Online Richter Probleme , mit denen nicht
StringBuilder
oderStringBuffer
können Sie es tun , an Ort und Stelle mit ,char[]
wie folgend:quelle
http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm
quelle
quelle
Ich mache das auf zwei Arten:
Reverse String von CHARACTERS:
Reverse String von WORDS:
quelle
Schauen Sie sich die Java 6-API unter StringBuffer an
quelle
reverse()
undtoString()
), sodass der Unterschied wahrscheinlich nicht einmal sein wird messbar.Hier ist ein Beispiel mit Rekursion:
quelle
Hier ist eine Low-Level-Lösung:
quelle
Ich habe es nur zum Spaß mit einem Stack versucht. Hier mein Code:
quelle
Seit der folgenden Methode (unter Verwendung von XOR ), um eine Zeichenfolge umzukehren nicht aufgeführt ist, füge ich diese Methode zum Umkehren einer Zeichenfolge hinzu.
Der Algorithmus basiert auf:
Code-Auszug:
Ausgabe:
Keetarp
quelle
Wie andere bereits betont haben, ist die bevorzugte Verwendung:
Aber wenn Sie dies selbst implementieren möchten, befürchte ich, dass die restlichen Antworten Mängel aufweisen.
Der Grund dafür ist, dass es sich
String
um eine Liste von Unicode- Punkten handelt, die in einemchar[]
Array gemäß der Codierung variabler Länge: UTF-16 codiert sind .Dies bedeutet, dass einige Codepunkte ein einzelnes Element des Arrays (eine Codeeinheit) verwenden, andere jedoch zwei, sodass möglicherweise Zeichenpaare als einzelne Einheit behandelt werden müssen (aufeinanderfolgende "hohe" und "niedrige" Ersatzzeichen). .
quelle
Es ist sehr einfach in minimalen Zeilencode
quelle
Das hat den Trick für mich getan
quelle
1. Verwenden des Zeichenarrays:
2. Verwenden von StringBuilder:
ODER
quelle
Ich habe diese Methode verwendet, um Namen rückwärts und in Kleinbuchstaben umzuwandeln.
quelle
quelle
Eine natürliche Möglichkeit, a umzukehren,
String
besteht darin, aStringTokenizer
und einen Stapel zu verwenden.Stack
ist eine Klasse, die einen benutzerfreundlichen LIFO-Stapel (Last-In, First-Out) von Objekten implementiert.Legen Sie es vorne in den Stapel
Drucken Sie den Stapel rückwärts
quelle
quelle
Alle oben genannten Lösungen sind zu gut, aber hier mache ich Reverse String mit rekursiver Programmierung.
Dies ist hilfreich für diejenigen, die eine rekursive Methode zum Ausführen von Reverse-Strings suchen.
quelle
Vorgehensweise:
Wir können split () verwenden, um die Zeichenfolge zu teilen. Verwenden Sie dann die Umkehrschleife und fügen Sie die Zeichen hinzu.
Code-Auszug:
quelle
public String reverseWords (String s) {
quelle
Sie können dies auch versuchen:
quelle
quelle
Rekursion:
quelle
Nur zum Spaß..:)
Durchquere i von 0 nach len / 2 und dann
Zeitkomplexität: O (n)
Raumkomplexität: O (n)
quelle
quelle
quelle
quelle
quelle
Wenn Sie eine einfache for-Schleife verwenden möchten!
quelle