Java'da Ters Dize nasıl yapılır?

Yayınlanan: 2023-01-06

Dize, bir karakter dizisidir ve Java'da bir nesne olarak ele alınır. Java'da verileri bir karakter dizisinde depolayan bir nesnedir. Tersine çevrilen bir diziye ters dizi denir. Örneğin, 'program' dizgisinin tersi 'margorP'dir.

İçindekiler

Java'da dize ters çevirmenin arkasındaki mantık:

Bir diziyi ters çevirmek için her biri ayrı işlevler kullanan çeşitli yollar mevcuttur. Kullanılan yöntemler farklı olsa da, dizgenin ters çevrilmesinin ardındaki temel süreç hemen hemen aynıdır. Kullanılan tipik mantık şudur:

  • Kullanıcı girişini kullanarak veya kod içinde bir dizi girin.
  • Dizenin karakterlerini son konumdan başlayarak alın ve herhangi bir değişkene kaydedin.
  • Çıktıyı göster.

Dünyanın En İyi Üniversitelerinden Çevrimiçi Yazılım Geliştirme Kursları Öğrenin. Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Java'da dizeyi tersine çevirmek için çeşitli yöntemler:

  1. StringBuffer veya StringBuilder'ı Kullanma
  2. Ters Yinelemeyi Kullanma
  3. charAt() yöntemini kullanma
  4. ArrayList nesnesini kullanma
  5. Özyinelemeyi Kullanma
  6. String'i Bayt'a Dönüştür
  7. Yığını Kullanma

Bu yöntemlerin her birini ayrıntılı olarak inceleyelim.

Yazılım Mühendisliği ile İlgili Popüler Kurslar ve Makaleler

Popüler Programlar
Yazılım Geliştirmede Yönetici PG Programı - IIIT B Blockchain Sertifika Programı - PURDUE Siber Güvenlik Sertifika Programı - PURDUE Bilgisayar Bilimlerinde Yüksek Lisans - IIIT B
Diğer Popüler Makaleler
ABD'de Bulut Mühendisi Maaşı 2021-22 ABD'de AWS Çözüm Mimarı Maaşı ABD'de Arka Uç Geliştirici Maaşı ABD'de Ön Uç Geliştirici Maaşı
ABD'de web geliştiricisi Maaşı 2022'de Scrum Master Mülakat Soruları 2022'de Siber Güvenlik Alanında Bir Kariyere Nasıl Başlanır? Mühendislik Öğrencileri için ABD'de Kariyer Seçenekleri

1. StringBuilder / StringBuffer tarafından

StringBuffer veya StringBuilder sınıfı, dizgedeki karakterleri tersine çeviren yerleşik bir reverse() yöntemine sahiptir. Karakterlerin sırasını ters sırayla değiştirir. Bu yöntem, java'da dizeyi tersine çevirmek için mantığı uygulayan statik yöntemdir .

StringBuffer ve StringBuilder, Java'da dize manipülasyonlarının kaynak tahsisini yöneten iki yardımcı sınıftır.

StringBuffer'ı kullanma:

StringBuffer kullanarak bir dizgiyi tersine çeviren Java Programı:

genel sınıf ExampleofReverseString{

genel statik geçersiz main(String[] args) {

Dizi str1 = “Elma”;

//rev değişkeninde ters dize sırasını saklar

String rev = new StringBuffer(str1).reverse().toString();

//dizeyi tersinden önce yazdırır

System.out.println(“\Ters çevirmeden önceki dize: “+str1);

//dizeyi tersten sonra yazdırır

System.out.println(“Ters çevirmeden sonraki dize: “+rev);

}

}

Çıktı:

Tersine çevirmeden önceki dize: Apple

Tersine çevirmeden sonraki dize: elppA

Yukarıdaki örnekte, girdi olarak sağlanan dize, StringBuffer kullanılarak ara belleğe alınır. Daha sonra reverse() yöntemi kullanılarak tersine çevrilir. Tampon ters çevrildikten sonra, toString() yöntemi kullanılarak bir dizgeye dönüştürülür.

StringBuilder'ı Kullanmak:

StringBuilder sınıfı, StringBuffer sınıfına göre oldukça tercih edilir. Daha hızlıdır ve senkronize değildir.

StringBuilder kullanarak bir dizgiyi tersine çeviren Java Programı:

genel sınıf ExampleofReverseString{

genel statik geçersiz main(String[] args) {

Dizi str1 = “Okul”;

//ters dizeyi rev değişkeninde saklar

String rev = new StringBuilder(str1).reverse().toString();

//dizeyi tersinden önce yazdırır

System.out.println(“\nTers çevirmeden önce dize: “+str1);

//dizeyi tersten sonra yazdırır

System.out.println("Ters çevirmeden sonra dize: "+rev);

}

}

Çıktı:

Geri gitmeden önce dize: Okul

Tersine çevirmeden önce dize: loohcS

Yukarıdaki kodda, StringBuilder sınıfının nesnesi kullanılmıştır. Karşılık gelen StringBuilder nesneleri bellek açısından verimlidir, değişkendir ve yürütmede hızlıdır. Nesne, istenen çıktıyı sağlamak için yerleşik reverse() yöntemini çağırır.

2. Ters İterasyonla

Ters Yinelemeyi kullanarak bir dizeyi tersine çeviren Java Programı:

genel sınıf StringReversal {

genel statik String reverseString(String st){

char ch[]=st.toCharArray();

Dize rev=””;

for(int i=ch.length-1;i>=0;i–)

{

rev+=ch[i];

}

dönüş devri;

}

}

genel sınıf TestStringReversal {

genel statik geçersiz main(String[] args) {

System.out.println(StringReversal.reverseString("Ben öğretmenim "));

System.out.println(StringReversal.reverseString(“İngilizce dersi öğretiyorum”));

}

}

Çıktı:

ben rehcaet

hsilgnE tcejbus'a ihtiyacım var

Java'da ters dizgi için yukarıdaki programda , giriş dizgisinin karakterleri for döngüsü kullanılarak son konumdan başlayarak rev+ değişkeninde saklanır. Tersine çevrilmiş dizi, tüm karakterler depolandıktan sonra çıktıda gösterilecektir.

Ters İterasyon için While Loop'u kullanabilirsiniz ve kodu aşağıdaki gibidir:

genel sınıf StringReversal {

genel statik geçersiz main(String[] args)

{

String stringInput = "Bu Dizi";

int StrLength=stringInput.length();

while(StrLength >0)

{

System.out.print(stringInput.charAt(StrLength -1));

StrLength–;

}

}

}

Çıktı:

gnirts sihT

3. charAt() yöntemini kullanma

Java Programı aşağıdaki gibidir:

genel sınıf ExampleofReverseString {

genel statik geçersiz main(String[] args) {

String str = “Java Öğrenin”;

//ters dizeyi revv değişkeninde saklar

Dize revv = “”;

//dizinin uzunluğu len'de saklanacak

int len=str.uzunluk();

for(int i=len-1;i>=0;i–)

revv = revv + str.charAt(i);

//dizeyi tersinden önce yazdırır

System.out.println(“\nTers işlemden önceki dize: “+str);

//dizeyi tersten sonra yazdırır

System.out.println(“Tersten sonra dize: “+ revv);

}

}

Çıktı:

Tersine çevirme işleminden önceki dize: Java öğrenin

Tersine çevirme işleminden önceki dize: avaJ nraeL

Bir dizgiyi tersine çevirmek için kullanılan bu java programında , giriş dizgisi karakterleri, for döngüsü kullanılarak son konumdan başlayarak revv değişkeninde saklanır. Tüm karakterler saklandıktan sonra, ters dizi çıktıya yansıtılacaktır.

4. ArrayList nesnesini kullanma

Java Programı aşağıdaki gibidir:

java.util.ArrayList'i içe aktarın;

java.util.Collections'ı içe aktarın;

java.util.List'i içe aktarın;

java.util.ListIterator'ı içe aktarın;

genel sınıf ExampleofReverseString {

genel statik geçersiz main(String[] args) {

String str = “Kodlamanın keyfini çıkarın”;

//giriş dizesini bir karakter dizisine dönüştürür

char ch[]=str.toCharArray();

// ArrayList'in nesnesine karakter dizisi ekler

List<Karakter> nesnesi = new ArrayList<>();

için (char c: ch)

nesne.add(c);

//ArrayList nesnesini koleksiyonlara iletir

Koleksiyonlar.reverse(nesne);

//listiterator nesnesini listede tekrarlamak için oluşturur

ListIterator objnew = obj.listIterator();

//dizeyi tersine çevirmeden önce yazdırır

System.out.println(“\nTers işlemden önceki dize: “+ str);

//dizeyi tersine çevirdikten sonra yazdırır

System.out.println("\nTers işlemden sonra dize: ");

while (objnew.hasNext())

System.out.print(objnew.next());

}

}

Çıktı:

Ters işlemden önceki dize: Kodlamanın tadını çıkarın

Tersine çevirme işleminden sonra dize: gnidoc yojnE

Bir dizgiyi ters çevirmek için kullanılan bu java programı , giriş dizgisinin karakterlerini ArrayList nesnesinde saklar. Koleksiyonlarda reverse() yöntemi kullanılarak tersine çevrilir. Yineleyici, liste boyunca yinelenir ve tersine çevrildikten sonra ters çevrilmiş dizeyi yazdırır.

5. Özyinelemeyi Kullanma

Java Programı aşağıdaki gibidir:

genel sınıf ExampleofReverseString {

// ters çevirme işlevini tanımlar

Dize revs(Dize str) {

// dizgenin uzunluğu sıfırsa null döndürür

if(str.uzunluk() == 0)

{

dönüş " ";

}

//aksi takdirde aşağıdaki yöntemden elde edilen karakteri döndürür

return str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));

}

public static void main(String[ ] args)

{

// bir sınıf nesnesi oluşturur

ExampleofReverseString r = new ExampleofReverseString();

//dizeyi giriyoruz

String str = “Java'da Usta”;

//dizeyi tersine çevirmeden önce yazdırır

System.out.println(“\nTers işlemden önceki dize: “+ str);

//dizeyi tersine çevirdikten sonra yazdırır

System.out.println(“\nTers işlemden sonra dize: ” + r.revs(str));

}

Çıktı:

Tersine çevirme işleminden önceki dize: Java'da Master

Tersine çevirme işleminden sonra dize: avaJ ni retsaM

Bu Java programında özyinelemeli bir işlev oluşturulur. Dizinin uzunluğunu ve on tersini kontrol eder. Java'daki işlevi tersine çevirmek için aynı şekilde çalışır .

6. Bir Dizinin Bayta Dönüştürülmesiyle

Girdi dizesini baytlara dönüştüren veya bölen getBytes() yöntemini kullanır. O anda, bayt dizisi uzunluğu giriş dizisinin uzunluğuna eşittir. Program daha sonra baytları ters sırayla alır ve bunları yeni bir bayt dizisine kaydeder.

Aşağıdaki kodda, geçici olarak bir bayt dizisi oluşturulur. Biri dönüştürülen baytları saklamak için, diğeri sonucu ters sırada kaydetmek için iki baytlık diziler oluşturulur.

Java Programı aşağıdaki gibidir:

genel statik geçersiz main(String[] arg) {

Dize girdi değeri = "Bilgisayar";

bayt[] strByteArray = inputvalue.getBytes();

bayt[] sonuç = yeni bayt[strByteArray.uzunluk];

// Sonuçları, sonuç baytında[] ters sırada saklar

for (int i = 0; i < strByteArray.length; i++)

sonuç[i] = strByteArray [strByteArray.uzunluk – i – 1];

System.out.println(“Ters işlemden sonraki string:” +new String(sonuç));

}

Çıktı:

Ters işlemden sonraki dize: retupmoC

7) Yığın Kullanma

Bu yöntem, Stack veri yapısını kullanarak bir Java dizesini tersine çevirmek için aşağıdaki adımları içerir.

  1. Karaktersiz bir yığın oluşturun.
  2. String.toCharArray() yöntemini kullanarak bir giriş dizesini bir karakter dizisine dönüştürün. Ardından, her karakteri yığına ekler.

iii. Yığından boşalana kadar karakterleri alın ve ardından karakterleri bir karakter dizisine yeniden atayın. Yani, şimdi karakterler ters sırada gelecek.

  1. Karakter dizisi, String.copyValueOf(char[]) kullanılarak bir dizgeye dönüştürülür ve son olarak yeni dizgiyi döndürür.

Java Programı aşağıdaki gibidir:

java.util.Stack'i içe aktarın;

sınıf Ana

{

public static String ters(String str)

{

// dizgenin boş mu yoksa boş mu olduğunu kontrol eder

if (str == null || str.equals(“”)) {

dönüş dizisi;

}

// boş bir karakter yığını oluşturur

Yığın<Karakter> yığın = yeni Yığın<Karakter>();

// giriş dizesinin tüm karakterlerini yığına ekler

char[] ch = str.toCharArray();

for (int i = 0; i < str.uzunluk(); i++) {

yığın.push(ch[i]);

}

// index 0'dan başlar

int m = 0;

// boşalana kadar yığından karakterleri alır

while (!stack.isEmpty())

{

// alınan her karakteri karakter dizisine geri atar

ch[m++] = yığın.pop();

}

// karakter dizisini bir dizgeye dönüştürür ve döndürür

String.copyValueOf(ch) döndürür;

}

genel statik geçersiz main(String[] args)

{

String str = “Teknoloji İnovasyonu”;

dizi = ters(str);

System.out.println(“Giriş dizisinin tersi: ” + str);

}

}

Çıktı

Giriş dizesinin tersi: ygolonhceT noitavonnI

UpGrad ile Java Yolculuğunuza Başlayın

Java öğrenmek istiyorsanız, Core Java kavramlarını anlamalısınız. Bunun için, UpGrad'ın Bilgisayar Bilimleri Yüksek Lisansına devam edebilirsiniz . Java'da Çekirdek Java, OOPS kavramları, nesneleri ve sınıfları, Java'da Yöntemler, Java Sanal Makinesi, Polimorfizm, Kalıtım, Soyutlama, Kapsülleme vb. konuları kapsar. Sektör uzmanlarından rehberlik alacaksınız. Bu uzmanlar, müfredat ve ileri düzey konuları kapsayan etkileşimli canlı oturumlar yürütür.

Java'da bir String'i tersine çevirmenin en basit yolu nedir?

Java'da bir String'i tersine çevirmenin en basit yolu StringBuffer sınıfını kullanmaktır. Mevcut StringBuffer nesnesinin içeriğini tersine çeviren ve çıktı StringBuffer nesnesini döndüren, reverse() olarak bilinen bir yöntemi destekler.

Java'da özyinelemeli yöntem nedir?

Kendini çağıran bir yönteme Java'da özyinelemeli yöntem denir. Karşılık gelen süreç özyineleme olarak adlandırılır.

String'in Java'daki uygulamaları nelerdir?

Java'da, kodlardaki intihali tespit etmek için Dizeler kullanılabilir. Vericiden alıcıya güvenli veri aktarımı için kodlama ve kod çözme için kullanılabilirler. Dize uygulamaları, anonim veri kaynaklarından bilgi almanıza yardımcı olur. Ayrıca, Dizeler ve algoritma uygulamaları, Yaklaşık Sonek-Önek Çakışması Sorununu çözmek için size gelişmiş Filtreler sağlar.