CodeGym /Java Blogu /Rastgele /Java'da Bir Dizeyi Ters Çevir
John Squirrels
Seviye
San Francisco

Java'da Bir Dizeyi Ters Çevir

grupta yayınlandı

Ters Dizi nedir?

“Bir String'i son karakterinden başlayıp ilk karakterine kadar okumaya başlayın. Bingo! bu senin ters dizendi."
İşte nasıl görüneceğine dair bir gösteri.

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

Java'da Bir Dize Nasıl Tersine Çevrilir?

Java'da bir String'i tersine çevirmenin farklı yolları vardır . Ancak Java, String sınıfı için herhangi bir reverse() yöntemi sağlamaz . Naif yaklaşım, for döngüsünü kullanmakla başlar . Geleneksel yinelemeli prosedür. Daha sonra, StringBuilder ve StringBuffer gibi diğer sınıflar tarafından sunulan reverse() yöntemlerini kullanarak oluşturabiliriz .

Yöntem 1 - Eski Okul Yinelemeli Yöntem


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

Çıktı

reverse(XYZ) = ZYX reverse(1 2 3) = 3 2 1 reverse(JAVA'YI SEVİYORUM!) = !AVAJ EVOL I reverse(Java öğrenmek için en sevdiğim yer CodeGym.) = .myGedoC si avaJ nrael ot ecalp etiruovaf yM reverse(Benim adım Lubaina Khan.) = .nahK aniabuL si eman yM reverse(null) = null reverse() =

Açıklama


public static String reverseInputString(String myString) { ... }
reverseInputString yöntemi, myString adlı bir Giriş Dizesi alır .

if (myString == null)
	return myString;
String yani myString girişinin boş olup olmadığını kontrol edin. Boş bulunursa, girişi olduğu gibi döndürün. Daha fazla ilerlememize gerek yok. Herhangi bir hatadan kaçınmak için buna sınır durumu işleme denir.

String reverseString = "";
Çıktıyı depolamak için boş bir String bildirin.

for (int i = myString.length() - 1; i >= 0; i--) {		
	reverseString = reverseString + myString.charAt(i);
}
Normal bir for döngüsü kullanın. Yineleyici i'yi String girişinin son dizininden başlatın . Giriş dizesinin son dizinine erişin ve onu çıkış dizesinde saklayın. 0. dizine veya giriş dizisinin başına ulaşana kadar tekrarlamaya devam edin.

return reverseString;
reverseString'i döndürün ve gereksinimlerinize göre kullanın.

Yöntem 2 - String Builder Sınıfının Kullanımı

Java'da, bir String'in içeriği bir kez başlatıldıktan sonra değiştirilemez. Bu nedenle, String s için bir reverse() yöntemi yoktur . Ancak Java'daki StringBuilder ve StringBuffer gibi diğer sınıflar , değişken veya değişken içerikler içerir. Bir dizeyi döngüler olmadan tersine çevirmek ve yerleşik StringBuilder veya StringBuffer sınıfını kullanmak için aşağıdaki bir örneğe bakalım.

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

Çıktı

reverse(ABC) = CBA reverse(0 1 2 2 3 3 3) = 3 3 3 2 2 1 0 reverse(Pazartesi) = yadnoM reverse(CodeGym'i seviyorum!) = !myGedoC evol I reverse(StringBuilder Class'ı kullanarak bu Diziyi tersine çevirin) .) = .ssalC redliuBgnirtS gnisu gnirtS siht esreveR reverse(StringBuffer Class kullanarak bu String'i ters çevirin.) = .ssalC reffuBgnirtS gnisu gnirtS siht esreveR

Açıklama


String input1 = "A B C";
StringBuilder inputText1 = new StringBuilder(input1);
String girişini tersine çevirmek için onu StringBuilder'a dönüştürmeniz gerekir . Bunun için String girişini StringBuilder yapıcısına iletin .

System.out.println("reverse(" + inputText1 + ") = " + inputText1.reverse());
String'i StringBuilder'a dönüştürdükten sonra , bunun tersini alabilir ve çıktıyı yazdırabilirsiniz.

 // ReverseString using the StringBuffer class
StringBuffer inputText6 = new StringBuffer("Reverse this String using StringBuffer Class.");
Alternatif olarak, bir String'i doğrudan StringBuilder veya StringBuffer'a iletebilirsiniz .

Çözüm

Bu yazının sonunda, Dizelerin tersine çevrilmesine ve bunu diğer StringBuilder ve StringBuffer sınıflarını kullanarak nasıl başaracağınıza aşina olmalısınız. Size uygun olan herhangi bir yöntemi seçebilirsiniz. Sıkışmış hissettiğiniz her an atlamaktan çekinmeyin. O zamana kadar, pratik yapmaya ve parlamaya devam edin.
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION