Ano ang Reverse String?
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 .
GO TO FULL VERSION