CodeGym /Java Blog /Willekeurig /Keer een string om in Java
John Squirrels
Niveau 41
San Francisco

Keer een string om in Java

Gepubliceerd in de groep Willekeurig

Wat is een omgekeerde tekenreeks?

“Begin met het lezen van een string vanaf het laatste teken tot aan het eerste teken. Bingo! dat was je omgekeerde snaar."
Hier is een demonstratie van hoe het eruit zal zien.

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";

Hoe een string in Java omkeren?

Er zijn verschillende manieren om een ​​string in Java om te keren. Java biedt echter geen methode reverse() voor de klasse String . De naïeve benadering begint met het gebruik van een for- lus. De traditionele iteratieve procedure. Later kunnen we het opbouwen door methoden reverse() te gebruiken die worden aangeboden door andere klassen zoals StringBuilder en StringBuffer .

Methode 1 - De iteratieve manier van de oude school


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));
	}
}

Uitgang

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse(Mijn favoriete plek om Java te leren is CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(Mijn naam is Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Uitleg


public static String reverseInputString(String myString) { ... }
De methode reverseInputString neemt een invoerreeks met de naam myString .

if (myString == null)
	return myString;
Controleer of de invoerstring , dwz myString, null is. Indien null gevonden, retourneert u de invoer zoals deze is. We hoeven niet verder te gaan. Dit wordt afhandeling van grensgevallen genoemd om fouten te voorkomen.

String reverseString = "";
Declareer een lege string om de uitvoer op te slaan.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Gebruik een normale for -lus. Initialiseer de iterator i van de laatste index van de invoerstring . Ga naar de laatste index van de invoerreeks en sla deze op in de uitvoerreeks. Blijf herhalen tot je de 0e index of het begin van de invoerreeks bereikt.

return reverseString;
Retourneer de reverseString en gebruik deze volgens uw vereisten.

Methode 2 - Het gebruik van String Builder Class

In Java kan de inhoud van een eenmaal geïnitialiseerde string niet meer worden gewijzigd. Daarom is er geen methode reverse() beschikbaar voor String s. Maar andere klassen zoals StringBuilder en StringBuffer in Java bevatten inhoud die veranderlijk of veranderlijk is. Om een ​​string zonder loops om te keren en de ingebouwde StringBuilder- of StringBuffer- klasse te gebruiken, laten we eens kijken naar een voorbeeld hieronder.

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());
	}
}

Uitgang

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(maandag) = yadnoM reverse(I love CodeGym!) = !myGedoC evol I reverse(Keer deze string om met StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse (Keer deze string om met StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Uitleg


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
Om de invoerstring om te keren, moet u deze converteren naar de StringBuilder . Geef daarvoor de invoerstring door aan de StringBuilder- constructor.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Na het converteren van String naar de StringBuilder , kunt u de omkering ervan krijgen en de uitvoer afdrukken.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Als alternatief kunt u een string rechtstreeks doorgeven aan de StringBuilder of StringBuffer .

Conclusie

Aan het einde van dit bericht moet u bekend zijn met het omkeren van strings en hoe u dit kunt bereiken met andere klassen van StringBuilder en StringBuffer. U kunt elke methode naar eigen inzicht kiezen. Stap gerust in wanneer je het gevoel hebt vast te zitten. Blijf tot die tijd oefenen en blijf stralen.
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION