Java'da Dize İşlevleri | Java Dizesi [Örneklerle]

Yayınlanan: 2020-12-01

İçindekiler

Tanıtım

Java, nesne yönelimli programlama desteği ve sağlanan veri türleri için önceden tanımlanmış işlevleri nedeniyle programcılar arasında büyük saygı görmüştür. Dizeler, Java tarafından sağlanan etkileyici veri türlerinden biridir.

Değişmezdirler ve yığın alanında String Constant Pool adı verilen ayrı bir bellek bloğunda depolanırlar. Java'da dizeler için önceden tanımlanmış birçok işlev vardır, hadi bunları keşfedelim!

Fonksiyonlar

charAt()

Belirli bir konumdaki karaktere erişmek için o dizini yinelemek için bir döngüye ihtiyacımız yok, charAt() işlevi zor işi sizin için hallediyor!. charAt() işlevi, dizedeki belirli bir konumdaki karakteri döndürür, dizinin Java'da 0'dan başladığını unutmayın.

Bu işlev erişim değiştiricisi ile public olarak tanımlanır ve bir karakter döndürür. Bu yöntem, parametre olarak bir tamsayı bekler ve işleve dize uzunluğundan daha büyük bir parametreyle erişmek, bir çalışma zamanı istisnası olan bir IndexOutOfBounds İstisnası döndürür.

String str = Merhaba ;

char ilk = str . charAt( 0 );

char saniye = str . charAt( 1 );

sistem . dışarı . println(birinci + + saniye);

Yukarıdaki kod parçası çıktı olarak 'h e' verecektir çünkü ilk değişkene 'h' karakteri ve ikinci değişkene 'e' karakteri atanmıştır.

CompareTo() ve CompareToIgnoreCase()

Java'da iki dizeyi karşılaştırmak == operatörüyle çalışmayacaktır, çünkü her iki değişkenin adresinin kontrol edilip edilmediğini kontrol eder ve her iki değişkenin de aynı adrese sahip olması durumunda true değerini döndürür. Bu nedenle, bir == operatörü, dizelerin içeriğini karşılaştıramaz, burada karşılaştırmaTo() yöntemi devreye girer.

Bu genel yöntem, karşılaştırılacak bir parametre olarak bir dize veya nesne bekler ve sözlükbilimsel karşılaştırmadan sonra bir tamsayı değeri döndürür, bu yöntemin büyük/küçük harfe duyarlı olduğunu unutmayın. Ancak, karakterlerin küçük ve büyük harflerini yok sayan bir karşılaştırma için karşılaştırma ToIgnoreCase() kullanabiliriz.

String str1 = " Merhaba " ;

String str2 = Merhaba ;

String str3 = merhaba ;

int i1 = str1 . comapreTo(str2);

int i2 = str2 . karşılaştırmaTo(str3);

int i3 = str2 . CompareToIgnoreCase(str3);

sistem . dışarı . println(i1 + i2 + + i3);

Yukarıdaki kod parçası çıktı olarak '1 0 1' yazdıracaktır, çünkü her iki dize de eşit olduğundan i1 değişkenine 1 atanmıştır, dizeleri büyük/küçük harf duyarlılığına göre karşılaştırdığımız için i2 değişkenine 0 atanmıştır. Benzer şekilde, büyük ve küçük harfleri yok sayarak dizeleri karşılaştırdığımız için i3 değişkeni 1 ile atanır.

concat()

Dizeler değişmez olduğundan, bir dizenin değerini düzenleyemiyoruz, bunun yerine güncellenmiş değeri aynı değişkene yeniden atayabiliriz. Her iki dizgiyi birleştirmek için concat() yöntemini kullanabiliriz. Bu yöntem, birleştirilecek parametre olarak bir dize bekler ve yeni bir birleştirilmiş dize döndürür.

Dize s1 = ilk ;

Dize s2 = " saniye " ;

sistem . dışarı . println(s1 .concat (s2));

Yukarıdaki pasaj, "ilk saniye" dizesini yazdırır.

Okuyun: JavaBeans Özellikleri ve Faydaları: Nasıl Kullanmalısınız?

içerir()

Bir dizginin başka bir dizgenin devamı olarak mevcut olup olmadığını kontrol etmek artık bir engeldir. Java'daki include() yöntemi, bir boolean genel işlevidir ve bir dizgede bir dizi karakter varsa true, yoksa false döndürür. Bu yöntem, parametre olarak bir karakter dizisi bekler ve parametre olarak boş bir nesne geçirilirse bir NullPointerException döndürür.

String s1 = Merhaba ;

sistem . dışarı . println(s1 .içerir ( ) ) ; //satır 1

sistem . dışarı . println(s1 .içerir ( )); //hat 2

sistem . dışarı . println(s1 .içerir ( null ) ); //satır3

Yukarıdaki kod parçası, dizede "the" dizisi mevcut olduğundan, satır 1 için True yazdırır, benzer şekilde 2. satır True yazdırır, çünkü boş bir dizi varsayılan olarak True döndürür. Ve satır 3, bir null parametresi geçirildiğinden bir NullPointerException atar.

indeksi()

Belirli bir dizinde bulunan karakteri döndüren bir Java işlevi gördük, ancak belirli bir karakterin ilk oluşumunun dizinini istiyorsak ne olur? Rahatlayın, indexOf() işlevi işi yapar. Bu işlev dahili olarak dört farklı imza ile geçersiz kılınmıştır, hadi bunların üzerinden geçelim.

String s1 = Hey orada, hey orada, Hey orada, hey orada " ;

sistem . dışarı . println(s1 .indexOf ( orada )); //satır 1

sistem . dışarı . println(s1 .indexOf ( " orada " , 5 )); //hat 2

sistem . dışarı . println(s1 .indexOf ( ' T ' )); //satır 3

sistem . dışarı . println(s1 .indexOf ( ' T ' , 16 )); // 4. satır

Yukarıdaki snippet'te, satır1'de çağrılan işlev bir dize bekler ve bu, belirli bir dizenin ilk oluşumunun başlangıç ​​dizinini döndürür, bu durumda 4 yazdırır. Satır2'de çağrılan işlev, parametre olarak bir tamsayı ile birlikte bir dize bekler, şimdi bu tamsayı, belirli bir dize aramasının o dizinden başladığı başlangıç ​​dizinine atıfta bulunur, bu durumda 37 yazdırır.

line3'te çağrılan fonksiyon parametre olarak bir karakter bekler, verilen karakterin ilk oluşumunu döndürür, bu durumda 15 yazdırır. Benzer şekilde, satır4'te bulunan işlev bir karakter ve bir tamsayı bekler.

Tamsayının başlangıç ​​dizinini temsil ettiği ve ardından verilen karakteri aramanın o karakterden başladığı yerde, bu durumda 26 yazdırır. Yukarıdaki snippet'te gördüğümüz gibi, bu işlevin tamamen büyük/küçük harf duyarlı olduğunu unutmayın.

boş()

Bu fonksiyon basit ama programcının bakış açısından çok faydalı bir görev yapar. Bu boole işlevi, dize boşsa True, değilse False döndürür. Bu işlev, dize üzerinde herhangi bir görev gerçekleştirmeden önce bir dizenin boş olup olmadığını kontrol etmeye yardımcı olur, çünkü işlevlerden birkaçı, yürütme akışını kesintiye uğratan boş dizeler için bir istisna atar.

String s1 = Merhaba ;

Dizi s2 = “” ;

sistem . dışarı . println(s1 .isEmpty ()); //satır 1

sistem . dışarı . println(s2 .isEmpty ()); //hat 2

Parçacığın üstünde satır1 için False ve satır2 için True yazdırılır.

uzunluk()

Bir dizgenin uzunluğunu bulmak artık sıkıcı bir iş değil, Java'daki length() işlevi verilen dizgenin uzunluğunu döndürür. Parametre olarak boş bir dize geçirilirse, bu sıfır döndürür.

Dize s1 = abcdefghijklmnopqrstuvwxyz ;

sistem . dışarı . println(s1 .uzunluk ( ));

Yukarıdaki kod 26 yazdırır.

yer değiştirmek()

Dizinin yalnızca ilk oluşumunu döndürdüğü indexOf() işlevinin aksine, replace() işlevi belirtilen tüm karakterleri verilen yeni karakterle değiştirir ve yeni bir dize döndürür. Bu genel işlev, parametre olarak c1 ve c2 gibi iki karakter bekler. Burada c1'e eşit tüm karakterleri arar ve bunları c2 ile değiştirir.

Dize s1 = merhabaHELLO ;

sistem . dışarı . println(s1.değiştir ( ' l ' , ' p ' ) );

Bu işlevin büyük/küçük harf duyarlı olduğunu unutmayın, bu nedenle yukarıdaki pasajda “heppoHELLO” yazdırılır.

toLowerCase() ve toUpperCase()

Bir dizgiyi küçük harfe dönüştürmek veya tam tersi, Java'da eğlenceli bir iştir, bu sadece tek bir kod satırı sanatına ihtiyaç duyar ve toLowerCase(), toUpperCase() işlevleri sanatçılardır.

Bu genel işlevler hiçbir parametre beklemez ve güncellenmiş küçük ve büyük harfli yeni bir dize döndürür.

String s1 = Merhaba ;

sistem . dışarı . println(s1 .toUpperCase ()); //satır 1

sistem . dışarı . println(s1 .toLowerCase ()); //hat 2

Yukarıdaki snippet'te satır2 "hey orada" yazdırır ve satır1 "HEY ORADA" yazdırır.

Öğrenin: Java'da Olay İşleme: Bu nedir ve Nasıl Çalışır?

kırp()

Bir dizedeki sondaki ve baştaki beyaz boşlukları kaldırmak için saf bir yaklaşım, dize üzerinde döngü yapmak ve bir beyaz boşluksa karakteri kaldırmaktır, ancak en uygun yol vardır. trim() işlevi, dizenin başındaki ve sonundaki tüm boşlukları kaldırır ve yeni bir dize döndürür. Bu genel işlev herhangi bir parametre beklemez.

String s1 = Merhaba ;

sistem . dışarı . println(s1 . trim());

Yukarıdaki pasaj, sondaki ve baştaki beyaz boşlukları kırptıktan sonra yeni dize olan "Hey There" yazdırır.

Çözüm

Java'daki birkaç string fonksiyonunu inceledik, nasıl çalıştıklarını, ne beklediklerini ve ne döndürdüklerini anladık. Birkaç işlevin geçersiz kılınan imzalarını araştırdı, doğru bir anlayış için örnek bir kod parçacığını inceledi. Artık birkaç işlevin farkında olduğunuza göre, gerektiğinde bunları kullanmaya başlayın.

Java, OOP'ler ve tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan Tam Yığın Yazılım Geliştirme PG Diplomasına göz atın, 9 + projeler ve görevler, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Geleceğin Kariyerine Hazırlanın

SEKTÖRDE GÜVENİLİR ÖĞRENME - SEKTÖR TANINMIŞ SERTİFİKA.
Daha fazla bilgi edin