CodeGym /Java blog /Tilfældig /Vend en streng i Java
John Squirrels
Niveau
San Francisco

Vend en streng i Java

Udgivet i gruppen

Hvad er en omvendt streng?

"Begynd at læse en streng begyndende fra dets sidste tegn og helt op til det første tegn. Bingo! det var din omvendte streng."
Her er en demonstration af, hvordan det vil se ud.

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

Hvordan vendes en streng i Java?

Der er forskellige måder at vende en streng på i Java. Java giver dog ikke nogen reverse()- metode til String- klassen. Den naive tilgang begynder med at bruge for loop. Den traditionelle iterative procedure. Senere kan vi bygge det op ved at bruge reverse() metoder, der tilbydes af andre klasser som StringBuilder og StringBuffer .

Metode 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(I LOVE JAVA!) = !AVAJ EVOL I reverse(Mit yndlingssted at lære Java er CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(mit navn er Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Forklaring


public static String reverseInputString(String myString) { ... }
Metoden reverseInputString tager en inputstreng kaldet myString .

if (myString == null)
	return myString;
Kontroller, om input- strengen, dvs. myString, er nul. Hvis fundet null, returner inputtet, som det er. Vi behøver ikke at komme videre. Dette kaldes grænsesagsbehandling for at undgå eventuelle fejl.

String reverseString = "";
Erklær en tom streng for at gemme outputtet.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Brug en normal for loop. Initialiser iteratoren i fra det sidste indeks af inputstrengen . Få adgang til det sidste indeks for inputstrengen, og gem det i outputstrengen. Fortsæt med at gentage, indtil du når det 0. indeks eller begyndelsen af ​​inputstrengen.

return reverseString;
Returner reverseString og brug den i henhold til dine krav.

Metode 2 - Brugen af ​​String Builder Class

I Java kan indholdet af en streng , når den først er initialiseret, ikke ændres. Derfor er der ingen reverse() metode tilgængelig for String s. Men andre klasser som StringBuilder og StringBuffer i Java indeholder indhold, der kan ændres eller ændres. For at vende en streng uden sløjfer og bruge den indbyggede StringBuilder- eller StringBuffer- klasse, lad os se på et eksempel nedenfor.

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(mandag) = yadnoM reverse(jeg elsker CodeGym!) = !myGedoC evol I reverse(Vend denne streng ved hjælp af StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(Vend denne streng ved hjælp af StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Forklaring


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
For at vende input- strengen skal du konvertere den til StringBuilder . For at gøre det skal du videregive input- strengen til StringBuilder- konstruktøren.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Efter at have konverteret String til StringBuilder , kan du få dens omvendte side og udskrive outputtet.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Alternativt kan du sende en streng direkte til StringBuilder eller StringBuffer .

Konklusion

Ved slutningen af ​​dette indlæg skal du være bekendt med vendingen af ​​Strings, og hvordan du opnår det ved at bruge andre klasser af StringBuilder og StringBuffer. Du kan vælge enhver metode efter din bekvemmelighed. Du er velkommen til at hoppe på, når du føler dig fastlåst. Indtil da, fortsæt med at øve og fortsæt med at skinne.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION