CodeGym /Java-blogg /Tilfeldig /Snu en streng i Java
John Squirrels
Nivå
San Francisco

Snu en streng i Java

Publisert i gruppen

Hva er en omvendt streng?

"Begynn å lese en streng fra det siste tegnet helt opp til det første tegnet. Bingo! det var den omvendte strengen din."
Her er en demonstrasjon av hvordan det vil 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";

Hvordan snu en streng i Java?

Det er forskjellige måter å reversere en streng i Java. Java gir imidlertid ingen reverse()- metode for String- klassen. Den naive tilnærmingen begynner med å bruke for loop. Den tradisjonelle iterative prosedyren. Senere kan vi bygge det opp ved å bruke reverse() -metoder som tilbys av 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));
	}
}

Produksjon

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse(Min favoritt plass å lære Java er CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(Mitt navn er Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Forklaring


public static String reverseInputString(String myString) { ... }
Metoden reverseInputString tar en inngangsstreng kalt myString .

if (myString == null)
	return myString;
Sjekk om inndatastrengen , dvs. myString, er null. Hvis funnet null, returner inndata som det er. Vi trenger ikke gå videre. Dette kalles grensesaksbehandling for å unngå eventuelle feil.

String reverseString = "";
Erklær en tom streng for å lagre utdataene.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Bruk en normal for loop. Initialiser iteratoren i fra den siste indeksen til inndatastrengen . Få tilgang til den siste indeksen til inndatastrengen og lagre den i utdatastrengen. Fortsett å gjenta til du kommer til den 0. indeksen eller begynnelsen av inndatastrengen.

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

Metode 2 - Bruken av strengbyggerklassen

I Java kan ikke innholdet i en streng endres når den først er initialisert. Derfor er det ingen reverse()- metode tilgjengelig for String s. Men andre klasser som StringBuilder og StringBuffer i Java inneholder innhold som kan endres eller endres. For å snu en streng uten løkker og bruke den innebygde StringBuilder- eller StringBuffer -klassen, la oss 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());
	}
}

Produksjon

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(Reversere denne strengen med StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(Reverser denne strengen ved å bruke StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Forklaring


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
For å reversere inndatastrengen du konvertere den til StringBuilder . For det, send inndatastrengen til StringBuilder - konstruktøren.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Etter å ha konvertert String til StringBuilder , kan du få det motsatte og skrive ut utdataene.

 // 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 .

Konklusjon

Ved slutten av dette innlegget må du være kjent med reversering av Strings og hvordan du oppnår det ved å bruke andre klasser av StringBuilder og StringBuffer. Du kan velge hvilken som helst metode etter din bekvemmelighet. Hopp gjerne på når du føler deg fast. Inntil da, fortsett å øve og fortsett å skinne.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION