CodeGym /Blog Java /rawak /Balikkan String dalam Java
John Squirrels
Tahap
San Francisco

Balikkan String dalam Java

Diterbitkan dalam kumpulan

Apakah Rentetan Terbalik?

“Mulakan membaca String bermula dari aksara terakhirnya sehingga aksara pertama. Bingo! itu adalah rentetan terbalik anda."
Berikut ialah demonstrasi bagaimana ia akan kelihatan seperti.

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 .

Kesimpulan

Pada penghujung siaran ini, anda mesti biasa dengan pembalikan Strings dan cara mencapainya menggunakan kelas StringBuilder dan StringBuffer yang lain. Anda boleh memilih mana-mana kaedah mengikut keselesaan anda. Jangan ragu untuk melompat pada bila-bila masa anda rasa tersekat. Sehingga itu, teruskan berlatih dan terus bersinar.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION