CodeGym /Java Blog /Random /Baliktarin ang isang String sa Java
John Squirrels
Antas
San Francisco

Baliktarin ang isang String sa Java

Nai-publish sa grupo

Ano ang Reverse String?

"Simulan ang pagbabasa ng String simula sa huling character nito hanggang sa unang character. Bingo! iyon ang iyong reverse string."
Narito ang isang pagpapakita kung ano ang magiging hitsura nito.

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

Paano Baligtarin ang isang String sa Java?

Mayroong iba't ibang mga paraan upang baligtarin ang isang String sa Java. Gayunpaman, ang Java ay hindi nagbibigay ng anumang reverse() na pamamaraan para sa String class. Ang walang muwang na diskarte ay nagsisimula sa paggamit ng for loop. Ang tradisyonal na umuulit na pamamaraan. Sa paglaon maaari nating itayo ito sa pamamagitan ng paggamit ng reverse() na mga pamamaraan na inaalok ng iba pang mga klase tulad ng StringBuilder at StringBuffer .

Paraan 1 - Ang 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));
	}
}

Output

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse(My favorite place to learn Java is CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(Ang pangalan ko ay Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Paliwanag


public static String reverseInputString(String myString) { ... }
Ang pamamaraan na reverseInputString ay tumatagal ng isang Input String na tinatawag na myString .

if (myString == null)
	return myString;
Suriin kung ang input String ie myString ay null. Kung nahanap na null, ibalik ang input bilang ito ay. Hindi na natin kailangang magpatuloy pa. Ito ay tinatawag na boundary case handling upang maiwasan ang anumang mga pagkakamali.

String reverseString = "";
Ipahayag ang isang walang laman na String upang iimbak ang output.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Gumamit ng isang normal para sa loop. Simulan ang iterator i mula sa huling index ng input String . I-access ang huling index ng input string at iimbak ito sa output string. Panatilihin ang pag-uulit hanggang sa maabot mo ang 0th index o ang simula ng input string.

return reverseString;
Ibalik ang reverseString at gamitin ito ayon sa iyong mga kinakailangan.

Paraan 2 - Ang Paggamit ng String Builder Class

Sa Java, ang mga nilalaman ng isang String kapag nasimulan ay hindi na mababago. Samakatuwid, walang reverse() na pamamaraan na magagamit para sa String s. Ngunit ang ibang mga klase tulad ng StringBuilder at StringBuffer sa Java ay naglalaman ng mga nilalaman na nababago o nababago. Upang baligtarin ang isang string na walang mga loop, at gamit ang built-in na StringBuilder o StringBuffer na klase tingnan natin ang isang halimbawa sa ibaba.

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

Output

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Monday) = yadnoM reverse(Gustung-gusto ko ang CodeGym!) = !myGedoC evol I reverse(I-reverse ang String na ito gamit ang StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(Baliktarin ang String na ito gamit ang StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Paliwanag


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
Upang baligtarin ang input String kailangan mong i-convert ito sa StringBuilder . Para diyan, ipasa ang input String sa StringBuilder constructor.

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Pagkatapos i-convert ang String sa StringBuilder , maaari mong makuha ang reverse nito at i-print ang output.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Bilang kahalili, maaari kang magpasa ng String nang direkta sa StringBuilder o StringBuffer .

Konklusyon

Sa pagtatapos ng post na ito, dapat na pamilyar ka sa pagbaliktad ng Strings at kung paano ito makamit gamit ang iba pang mga klase ng StringBuilder at StringBuffer. Maaari kang pumili ng anumang paraan ayon sa iyong kaginhawahan. Huwag mag-atubiling sumakay sa tuwing nakakaramdam ka ng suplado. Hanggang doon, patuloy na magsanay at patuloy na magniningning.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION