CodeGym /Java blogg /Slumpmässig /Vänd en sträng i Java
John Squirrels
Nivå
San Francisco

Vänd en sträng i Java

Publicerad i gruppen

Vad är en omvänd sträng?

"Börja läsa en sträng från dess sista tecken hela vägen upp till det första tecknet. Bingo! det var din omvända sträng."
Här är en demonstration av hur det kommer att se ut.

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

Hur vänder man en sträng i Java?

Det finns olika sätt att vända en sträng i Java. Java tillhandahåller dock ingen reverse()- metod för String -klassen. Det naiva tillvägagångssättet börjar med att använda för loop. Den traditionella iterativa proceduren. Senare kan vi bygga upp det genom att använda reverse() -metoder som erbjuds av andra klasser som StringBuilder och StringBuffer .

Metod 1 - The Old School Iterative Way


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

Produktion

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(JAG ÄLSKAR JAVA!) = !AVAJ EVOL I reverse(Min favoritplats att lära mig Java är CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(Mitt namn är Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Förklaring


public static String reverseInputString(String myString) { ... }
Metoden reverseInputString tar en indatasträng som heter myString .

if (myString == null)
	return myString;
Kontrollera om indatasträngen dvs myString är null. Om den hittas null, returnera indata som den är. Vi behöver inte gå vidare. Detta kallas gränsfallshantering för att undvika eventuella fel.

String reverseString = "";
Deklarera en tom sträng för att lagra utdata.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Använd en normal för loop. Initiera iteratorn i från det sista indexet för indatasträngen . Gå till det sista indexet för inmatningssträngen och lagra det i utmatningssträngen. Fortsätt att upprepa tills du når det 0:e indexet eller början av inmatningssträngen.

return reverseString;
Returnera den omvända strängen och använd den enligt dina krav.

Metod 2 - Användningen av String Builder Class

I Java kan innehållet i en sträng en gång initierats inte ändras. Därför finns det ingen reverse() metod tillgänglig för String s. Men andra klasser som StringBuilder och StringBuffer i Java innehåller innehåll som kan ändras eller ändras. För att vända en sträng utan loopar och använda den inbyggda StringBuilder- eller StringBuffer -klassen låt oss titta på ett exempel nedan.

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

Produktion

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Monday) = yadnoM reverse(Jag älskar CodeGym!) = !myGedoC evol I reverse(Vänd denna sträng med StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(Vänd denna sträng med StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Förklaring


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
För att vända inmatningssträngen måste du konvertera den till StringBuilder . För det, skicka indatasträngen till StringBuilder - konstruktorn.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Efter att ha konverterat String till StringBuilder kan du få dess baksida och skriva ut resultatet.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Alternativt kan du skicka en sträng direkt till StringBuilder eller StringBuffer .

Slutsats

I slutet av det här inlägget måste du vara bekant med vändningen av Strings och hur du uppnår det med andra klasser av StringBuilder och StringBuffer. Du kan välja vilken metod som helst efter din bekvämlighet. Hoppa gärna på när du känner dig fast. Tills dess, fortsätt öva och fortsätt glänsa.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION