CodeGym /Java-Blog /Random-DE /Kehren Sie einen String in Java um
Autor
John Selawsky
Senior Java Developer and Tutor at LearningTree

Kehren Sie einen String in Java um

Veröffentlicht in der Gruppe Random-DE

Was ist ein Reverse-String?

„Beginnen Sie mit dem Lesen eines Strings vom letzten Zeichen bis zum ersten Zeichen. Bingo! Das war deine umgekehrte Zeichenfolge.
Hier ist eine Demonstration, wie es aussehen wird.

Input String = "X Y Z";
Output String = "Z Y X"

Input String = "1 2 3";
Output String = "3 2 1";

Input String = "I love Java!";
Output String = "!avaJ evol I";

Wie kann man einen String in Java umkehren?

Es gibt verschiedene Möglichkeiten, einen String in Java umzukehren . Allerdings stellt Java keine reverse()- Methode für die String- Klasse bereit. Der naive Ansatz beginnt mit der Verwendung einer for- Schleife. Das traditionelle iterative Verfahren. Später können wir es aufbauen, indem wir reverse()- Methoden verwenden, die von anderen Klassen wie StringBuilder und StringBuffer angeboten werden .

Methode 1 – Der iterative Weg der alten Schule


public class StringReversal {

	public static String reverseInputString(String myString) {

		if (myString == null)
			return myString;

		String reverseString = "";

		for (int i = myString.length() - 1; i >= 0; i--) {		

			reverseString = reverseString + myString.charAt(i);
		}
		return reverseString;
	}

	public static void main(String[] args) {

		String myString1 = "X Y Z";
		System.out.println("reverse(" + myString1 + ") = " + reverseInputString(myString1));

		String myString2 = "1 2 3";
		System.out.println("reverse(" + myString2 + ") = " + reverseInputString(myString2));

		String myString3 = "I LOVE JAVA!";
		System.out.println("reverse(" + myString3 + ") = " + reverseInputString(myString3));

		String myString4 = "My favourite place to learn Java is CodeGym.";
		System.out.println("reverse(" + myString4 + ") = " + reverseInputString(myString4));

		String myString5 = "My name is Lubaina Khan.";
		System.out.println("reverse(" + myString5 + ") = " + reverseInputString(myString5));
		
		// Boundary Case to see what happens if a String is null
		String myString6 = null;
		System.out.println("reverse(" + myString6 + ") = " + reverseInputString(myString6));
		
		// Boundary Case to see what happens if a String is empty
		String myString7 = "";
		System.out.println("reverse(" + myString7 + ") = " + reverseInputString(myString7));
	}
}

Ausgang

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(ICH LIEBE JAVA!) = !AVAJ EVOL reverse(Mein Name ist Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Erläuterung


public static String reverseInputString(String myString) { ... }
Die Methode reverseInputString akzeptiert einen Eingabestring namens myString .

if (myString == null)
	return myString;
Überprüfen Sie, ob der Eingabestring , dh myString, null ist. Wenn null gefunden wird, geben Sie die Eingabe so zurück, wie sie ist. Wir müssen nicht weiter fortfahren. Dies wird Grenzfallbehandlung genannt, um Fehler zu vermeiden.

String reverseString = "";
Deklarieren Sie einen leeren String, um die Ausgabe zu speichern.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Verwenden Sie eine normale for- Schleife. Initialisieren Sie den Iterator i aus dem letzten Index des Eingabestrings . Greifen Sie auf den letzten Index der Eingabezeichenfolge zu und speichern Sie ihn in der Ausgabezeichenfolge. Wiederholen Sie den Vorgang, bis Sie den 0. Index oder den Anfang der Eingabezeichenfolge erreicht haben.

return reverseString;
Geben Sie den reverseString zurück und verwenden Sie ihn gemäß Ihren Anforderungen.

Methode 2 – Die Verwendung der String Builder-Klasse

In Java kann der Inhalt eines Strings nach der Initialisierung nicht mehr geändert werden. Daher ist für String s keine reverse()- Methode verfügbar . Aber auch andere Klassen wie StringBuilder und StringBuffer in Java enthalten Inhalte, die veränderbar oder veränderbar sind. Um einen String ohne Schleifen umzukehren und die integrierte StringBuilder- oder StringBuffer -Klasse zu verwenden, schauen wir uns unten ein Beispiel an.

public class StringBuilderReversal {

	public static void main(String[] args) {

		String input1 = "A B C";
		StringBuilder inputText1 = new StringBuilder(input1);
		System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());

		String input2 = "0 1 2 2 3 3 3";
		StringBuilder inputText2 = new StringBuilder(input2);
		System.out.println("reverse(" + inputText2 + ") = " + inputText2.reverse());

		String input3 = "Monday";
		StringBuilder inputText3 = new StringBuilder(input3);
		System.out.println("reverse(" + inputText3 + ") = " + inputText3.reverse());

		String input4 = "I love CodeGym!";
		StringBuilder inputText4 = new StringBuilder(input4);
		System.out.println("reverse(" + inputText4 + ") = " + inputText4.reverse());

		 // ReverseString using the StringBuilder class
		StringBuilder inputText5 = new StringBuilder("Reverse this String using StringBuilder Class.");
		System.out.println("reverse(" + inputText5 + ") = " + inputText5.reverse());

		 // ReverseString using the StringBuffer class
		StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
		System.out.println("reverse(" + inputText6 + ") = " + inputText6.reverse());
	}
}

Ausgang

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Montag) = yadnoM reverse(I love CodeGym!) = !myGedoC evol I reverse(Kehre diesen String mit der StringBuilder-Klasse um .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(Diesen String mithilfe der StringBuffer-Klasse umkehren.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Erläuterung


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
Um den Eingabe- String umzukehren, müssen Sie ihn in StringBuilder konvertieren . Übergeben Sie dazu den Eingabestring an den StringBuilder -Konstruktor.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Nachdem Sie String in StringBuilder konvertiert haben , können Sie die Umkehrung erhalten und die Ausgabe drucken.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Alternativ können Sie einen String direkt an StringBuilder oder StringBuffer übergeben .

Abschluss

Am Ende dieses Beitrags müssen Sie mit der Umkehrung von Strings vertraut sein und wissen, wie Sie sie mithilfe anderer Klassen von StringBuilder und StringBuffer erreichen. Sie können je nach Bedarf eine beliebige Methode wählen. Steigen Sie jederzeit ein, wenn Sie nicht weiterkommen. Bis dahin üben Sie weiter und glänzen Sie weiter.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION