Apakah Rentetan Terbalik?
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";
Bagaimana untuk Membalikkan Rentetan di Jawa?
Terdapat pelbagai cara untuk membalikkan String dalam Java. Walau bagaimanapun, Java tidak menyediakan sebarang kaedah reverse() untuk kelas String . Pendekatan naif bermula dengan menggunakan gelung . Prosedur berulang tradisional. Kemudian kita boleh membinanya dengan menggunakan kaedah reverse() yang ditawarkan oleh kelas lain seperti StringBuilder dan StringBuffer .Kaedah 1 - Cara Berulang Sekolah Lama
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));
}
}
Pengeluaran
reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(I LOVE JAVA!) = !AVAJ EVOL I reverse(Tempat kegemaran saya untuk belajar Java ialah CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM songsang(Nama saya Lubaina Khan.) = .nahK aniabuL si eman yM songsang(null) = null reverse() =
Penjelasan
public static String reverseInputString(String myString) { ... }
Kaedah reverseInputString mengambil Input String yang dipanggil myString .
if (myString == null)
return myString;
Semak sama ada String input iaitu myString adalah batal. Jika didapati batal, kembalikan input seperti sedia ada. Kita tidak perlu meneruskan lebih jauh. Ini dipanggil pengendalian kes sempadan untuk mengelakkan sebarang ralat.
String reverseString = "";
Isytiharkan String kosong untuk menyimpan output.
for (int i = myString.length() - 1; i >= 0; i--) {
reverseString = reverseString + myString.charAt(i);
}
Gunakan gelung biasa untuk . Mulakan iterator i daripada indeks terakhir String input . Akses indeks terakhir rentetan input dan simpan dalam rentetan output. Teruskan mengulang sehingga anda mencapai indeks ke-0 atau permulaan rentetan input.
return reverseString;
Kembalikan reverseString dan gunakannya mengikut keperluan anda.
Kaedah 2 - Penggunaan Kelas Pembina Rentetan
Di Jawa, kandungan String setelah dimulakan tidak boleh diubah. Oleh itu, tiada kaedah reverse() tersedia untuk String s. Tetapi kelas lain seperti StringBuilder dan StringBuffer dalam Java mengandungi kandungan yang boleh berubah atau boleh diubah. Untuk membalikkan rentetan tanpa gelung, dan menggunakan kelas StringBuilder atau StringBuffer terbina dalam mari lihat contoh di bawah.
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());
}
}
Pengeluaran
reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Isnin) = yadnoM reverse(Saya suka CodeGym!) = !myGedoC evol I reverse(Terbalikkan String ini menggunakan StringBuilder Class .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(SalC String ini menggunakan StringBuffer Class.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR
Penjelasan
String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
Untuk membalikkan String input anda perlu menukarnya kepada StringBuilder . Untuk itu, hantarkan String input kepada pembina StringBuilder .
System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
Selepas menukar String kepada StringBuilder , anda boleh mendapatkan sebaliknya dan mencetak output.
// ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Sebagai alternatif, anda boleh menghantar String terus ke StringBuilder atau StringBuffer .
GO TO FULL VERSION