Sıfırdan Java programlama dersleri serisinde önceki dersimizde “ Java Programlama Dersleri – Değişkenler (Veri Tipleri)” konusuna değinmiştik. Ancak bu konu içerisinde string veri tipi hakkında bilgi vermedik. Bu dersimizde Java string sınıfı üzerine konuşacağız.

String Nedir?

 

String, birden çok karakterin sıralanmasıyle elde edilen ve metinsel işlemleri yapmak için kullanılan bir veri tipidir. Başka bir ifadeyle string, bir karakter dizisinin elemanlarının bir arada bulunduğu bir kümedir.

String sınıfı java.lang kütüphanesi içinde bulunur. Metinlerle alakalı her tür işlemin yapıldığı sınıftır.

 

String Oluşturmak, String Çağırmak

 

Bu kısımda string oluşturma ve string çağırma işlemlerini göstereceğiz. String tipi,  uygulamada diğer değişken tiplerinden çok da farklı değildir. Basit bir uygulama üzerinde anlatalım.

Kodumuz.

Programımızın görüntüsü :

java programlama dersleri string olusturma ve cagirma

Programımızı anlatalım.

kodu ile ad isminde türü string olan ve değeri “Osman” olan bir değişken tanımladık. Sonrasında string tipinde ismi soyad olan bir değişken tanımladık. ad ve soyad değişkenlerine ilk değer atamasını ” = “ atama operatörü kullanarak yaptık.

Son olarak tanımladığımız mesaj değişkeni de string türündendir. Ancak mesaj değişkeninin ilk değer atamasını String constructor‘ını kullanarak new anahtar sözcüğü ile yaptık ve System.out.prinln() metodu ile değişkenlerimizi yazdırdık.

Bu metod içerisinde kullandığımız “+” operatörü ise metinsel ifadeleri, stringleri birleştirmek için kullanılır.

Programımızın sonucu aşağıdaki gibidir :

Java Programlama Dersleri string olusturma sonuc

Şimdi aşağıdaki iki satırlık kod üzerine konuşalım.

Yan tarafında “literal” olarak ifade edilen birinci kodumuzda string değişkenimize atama operatörü ile bir değer atıyoruz. new anahtar kelimesini kullanmamamıza rağmen Java Virtual Machine (JVM) bizim için bu nesneyi oluşturuyor.

Ancak burda bilinmesi gereken bir nokta var. Eğer ki atama operatörü kullanarak farklı iki isimde ancak içerikleri aynı olan string değişkenler oluşturursak  JVM, stringlerin tanımlandığı havuzu kontrol eder.

Aynı değere sahip olan ilk içeriği gördüğünde ikinci string değişkeni için bir object(nesne) oluşturmak yerine bu değeri gösteren bir referans geri döndürür.

Java Programlama Dersleri String İşlemleri

Bu durumu aşağıdaki kod özetleyecektir diye düşünüyorum:

 

String Sınıfı Metodları

 

Bu bölümde string sınıfı içerisinde tanımlanmış sıklıkla kullanılan işimizi kolaylaştıran string metodlarının kullanımlarını inceleyeceğiz.

 

String Uzunluğunu Bulma – length () Metodu

 

String sınıfı içerisinde length() isimli metod ile string bir ifadenin  kaç karakterden oluştuğunu öğrenebilirsiniz. Bu metod String içerisindeki boşlukları da karakter olarak sayar.

Sonuç aşağıdaki gibidir :

String sınıfı içerisindeki metodlara erişmek için stringDegisken ismini yazdıktan sonra nokta(.) operatörünü kullanırız.

 

String Karşılaştırması – equals() Metodu

 

Java’da string ifadeleri karşılaştırmak için equals() adında bir metod bulunur. Bu metod,  İki string ifadeyi karşılaştırır, eşitse true, değilse false değerini döndürür.
Normalde Java’da degiskenlerin eşitliğini kontrol eden “==” operatörü bulunmaktadır. Bu operatör “referans eşitliğini” kontrol eder. Yani kıyasladığımız iki string aynı object mi değil mi diye bakar. equals() metodu ise “değer eşitliğini” kontrol eder.

Bu sebeple stringlerde karşılaştırma işlemlerinde equals() metodunu tercih etmelisiniz.

İki tane string değişkeni tanımladık. Bunların içerisine aynı metinsel değerleri koyduk. equals() metodunun kullanımı aşağıdaki gibidir :

Sonuç ise aşağıdaki gibidir :

Daha önce de javanın case sensitive yani büyük-küçük harf duyarlı bir dil olduğunu söylemiştik. Bunu göstermek için kodlarımızı biraz değiştirelim:

Sonucumuz ise aşağıdaki gibidir :

Görüldüğü gibi ifadelerdeki “Java “ ve “JAVA” kelimelerini farklı olarak değerlendirdiğinden eşit değildir değerini döndürdü.

Bu metodun benzeri equalsIgnoreCase() metodu dur. Bu metod, karşılaştırılan metni ilk önce küçük harflere dönüştürüp sonrasında karşılaştırma yapar. Kullanımı aşağıdaki gibidir :

Sonucumuz aşağıdaki gibidir :

 

Sayıları String’e Çevirmek – valueOf() Metodu

 

Bir sayıyı metod kullanmadan String’e çevirmenin en kolay yolu concatenation(bağlamak) tır. Sayının önüne boş bir string koyarsanız sayı kendiliğinden string’e dönüşür.
Deneyelim:

Sonuç ise aşağıdaki gibidir :

Java’da valueof() metodu da;  sayıyı string’e dönüştürür. Kullanımı aşağıdaki gibidir :

Sonuç diğer çıktı ile aynıdır.

Bunların dışında bir de toString() metodu kullanılabilir. Kullanımını görelim :

Sonuç aşağıdaki gibidir :

Eğer s1 ve s2 değerleri sayısal değer olsaydı s1 + s2 değeri 3 + 5.2 den 8.2 gibi sayısal bir değer olurdu. Ancak “+” operatörü string ifadelerde yanyana birleştirme işlemi gördüğünden “3”+”5.2″ =”35.2″ değeri olarak karşımıza çıktı.

 

Stringleri Sayısal Değere Dönüştürme – parse..() Metodu

 

Integer ve Double sınıfları kendi içerisinde kullandıkları parse..() metodu ile String değerleri sayısal değerlere dönüştürebilirler. Uygulamasını görelim :

Programımızda ilk olarak s1 ve s2 değişkenlerine değer ataması yaptık. System.out.println() metodu ile değerlerini yazdırdık. Sonrasında toplamın değerlerini yazdırdık.

Sonuç aşağıdaki gibidir :

Sonuçta anormal bir durum gözükmüyor. String toplamı olduğundan sayısal değerleri birleştirdi. Şimdi de bu string değişkenleri sayısal değerlere dönüştürelim.

Double.parseDouble() metodu ile s1 string değişkenini double bir değişkene dönüştürürken, Integer.parseInt() metodu ile s2 string değişkenini integer bir değere dönüştürdük. Yeni oluşturduğumuz s3 ve s4 değerlerini ekrana yazdırdıktan sonra toplamın değerini yazdırdık. Sonuç aşağıdaki gibidir :

Sonuç beklediğimiz gibi çıktı. Derleyici sayıları, sayısal ifadeler olarak ele alıp doğru bir toplama işlemi yaptı.

Ancak dikkat edilmesi gereken bir durumu sizlerle paylaşmak istiyorum.

Her ne kadar s3 ve s4 değişkenleri sayısal değerlere dönüştürülmüş olsa da System.out.println() metodu içerisinde string bir ifade ile beraber toplama işlemini yapsaydım, bu değerleri gene string değerlermiş gibi değerlendirecekti. Ne demek istediğimi uygulama ile göstereyim :

Uygulamanın çıktısı ise aşağıdaki gibidir :

Görüldüğü gibi ifade sayısal olarak değil stringsel olarak değerlendirildi. Böyle bir durumda doğru sonuç alabilmek için toplamı s3 + s4 ifadesini parantez kullanarak (s3 + s4)  vermelisiniz.

Derleyicinin programı bu şekilde değerlendirmesinin sebebi ise Java’da işlem önceliği durumudur. Eğer parantez koymazsak işlemler soldan sağa doğru yapılacağından değerleri string’e dönüştürdü ve birleştirdi. İşlem önceliğinde parantez öncelikli olduğundan ilk olarak parantez içini halletti sonrasında yazdırdı.

 

Stringleri Birleştirme – concat() Metodu

 

Java’da String birleştirme işlemini metod kullanmadan “+” operatörünü kullanarak yapabiliriz.

Sonuç aşağıdaki gibidir :

İki stringi birleştirmek için concat() metodunu da kullanabiliriz. Nasıl kullanıldığını görmek için basit bir uygulama yapalım :

İlk olarak mesaj1 ve mesaj2 isimlerinde string tipinde 2 değişken tanımladık. Sonrasında concat() metodunu kullanarak bu iki metodu birleştirip sonradan tanımladığımız sonMesaj değişkenine atadık. Değerlerini ekrana yazdırdık. Sonuç aşağıdaki gibidir :

 

Alt Stringler Oluşturma – substring() Metodu

 

String’leri karakter dizileri olarak ifade etmiştik. Stringleri istediğimiz şartlara göre parçalara ayırabiliriz. Bunun için substring() metodunu kullanacağız.

substring() metodunun iki ayrı kullanımı vardır. Tek parametre verildiğinden verilen sayıdan sonraki karakter kümesini alır. İki parametre verildiğinde, parametrelerden ilki başlangıç indexini gösterirken ikincisi bitiş indexini gösterir. Ancak bitiş index dahil edilmez.

Uygulamasını görelim. Aşağıdaki uygulamada, mesaj1 stringinin 0. karakterden başlayarak 4. karakter olan boşluk karakteri dışındakileri mesaj2 içerisine atadık. Sonra da mesaj1 ve mesaj2 içeriklerini ekrana yazdırdık.

Dizilerde sıra değerleri 0’dan başlar. mesaj1’in 0. elemanı J dir. 4.elemanı ise boşluktur. Bu elemanı almayacak. Programımızın çıktısı aşağıdaki gibidir :

 

startsWith() ve endsWith()

 

startsWith(String prefix) metodu parametre olarak girilen string ifadenin, çağrıldığı string’in baş kısmında olup olmadığını kontrol eder. Varsa true, yoksa false değer döndürür. Kullanımı aşağıdaki gibidir :

kodları incelediğimizde startsWith() metodu ile  mesaj1 stringinin baş kısmında “Jav” stringi var mı diye kontrol ediliyor. Bu metodun döndürdüğü boolean değer, bastaMi değişkenine atanıyor ve son olarak ekrana yazdırılıyor. Sonuç aşağıdaki gibidir :

boolean kavramının ne olduğu ile alakalı herhangi bir bilgisiniz yoksa “Java Programlama Dersleri – Boolean Veri Tipi” makalesini okuyabilirsiniz.

Aynı şekilde endsWith(String prefix) metodu da parametre olarak girilen string ifadenin, çağrıldığı string’in sonunda olup olmadığı kontrolünü yapar. Varsa true yoksa false değeri döndürür. Uygulamasını görelim :

boolean tipinde sondaMi1 ve sondaMi2 şeklinde 2 tane değişken tanımladık. endsWith() metodu ile  “Ders” ve “leri” ifadelerinin mesaj1 stringinin sonunda olup olmadığını kontrol ettirdik. Ve sonuçları sondaMi1 ve sondaMi2 değişkenlerine atadık. Son olarak bu değerleri ekrana yazdırdık.

Sonuç aşağıdaki gibidir :

gördüğünüz gibi istediğimiz sonuçları elde etmiş olduk.

 

String Boşluk Silme – trim() Metodu

 

trim() metodu Java’da sıklıkla kullanılan bir metoddur. String ifadelerin başında ve sonundaki boşlukları silmeye yarar. Boşluktan kastımız sadece ” ” boş karakter değildir. Tab ve yeni satır gibi boşlukları da siler.trim () Metodu,  String içerisinde aralardaki boşluklara dokunmaz. Uygulamasını yapalım :

Kodumuzda ilk olarak mesaj stringini ekrana yazdırdık. Sonrasında trim() metodu kullanarak mesaj stringinin baş ve son kısımlarındaki boşlukları sildirip tekrardan aynı değişkene atadık. Yeni haliyle tekrar ekrana yazdırdık. Sonuca bakalım :

 

String Yer Değiştirme – replace() Metodu

 

Java’da string sınıfı içerisindeki replace() metodu herhangi bir string içerisindeki karakter ya da karakter gruplarının(string) değiştirilmesini sağlar.

İlk olarak string değiştirme işlemi için bir uygulama yapalım :

mesaj ve yeniMesaj isimlerinde 2 string değişken tanımladık. Sonrasında replace() metodu kullanarak;  mesaj değişkeni içerisinde yer alan “Dersleri” stringini “- elektroyazilim” olarak değiştirmek istedik.

replace() metodu nun döndürdüğü yeni değeri yeniMesaj stringi içerisine atadık ve değerleri ekrana yazdırdık (replace (eskiDeger, yeniDeger) metodu şeklinde çalışır.) :

Bu uygulama ile string yer değiştirme işlemi yapmış olduk. Bu metodu kullanarak karakterleri de değiştirebiliriz. Bir uygulama ile gösterelim :

Uygulamamızda ad isminde değeri “osman” olan bir string tanımladık. Sonra replace() metodunu kullanarak küçük harfle yazılmış ‘o’ osman değerinin baş harfini büyük ‘O’ ile değiştirmesini istedik. Yeni değeri de yeniAd değişkeninin içerisine atadık. Ve değişkenleri ekrana yazdırdık.

Sonucumuz aşağıdaki gibidir :

 

Karakter Sırası Öğrenme – indexOf() Metodu

 

String sınıfı içerisindeki metodlardan biri olan indexOf() metodu; string içerisinde aranılan karakter ya da stringin hangi sırada olduğunu döndürür. Geri dönüş değeri int dır. Bir uygulama ile metodun nasıl kullanıldığına bakalım.

İlk olarak string içerisinde aranılan karakterin kaçıncı sırada olduğunu bulalım.

Yukarıdaki programda ilk olarak “g” karakterinin string içerisinde hangi sırada yer aldığını ekrana yazdırdık.

 indexOf() metodu tek parametre aldığında sadece aranılan karakterin sırasını döndürür. indexOf() metodu iki parametre aldığında durum biraz farklılaşır. Şimdi de aranılan karakterin string içerisinde birden fazla bulunması durumunu inceleyelim. String içerisinde “a”  karakterini aratalım..

Parametrelerden ilki aranılan karakteri gösterir. İkincisi de aranılan karakterin string içerisinde kaçıncı defa bulunuşunu ifade eder.Yani yukarıdaki program için konuşursak string içerisinde “a” karakteri birden fazla bulunuyor. indexOf(‘a’,2) ifadesi,  “a”  karakterinin 2.(ikinci) defa hangi karakter sayısında geldiğini getirir.

Programın sonucu aşağıdaki gibidir :

Şimdi de indexOf() metodunu string aramada kullanalım. Bunu da farklı bir uygulamada gösterelim:

Yukarıdaki programda “Java Programlama Dersleri” stringi içerisinde “va” stringi aranmıştır ve sırası ekrana yazdırılmıştır. Sonrasında aynı şekilde belirtilen string içerisinde “ler” string ifadesinin sırası indexOf() metodu ile bulunup ekrana yazdırılmıştır. Sonuç aşağıdaki gibidir :

System.out.println() metodu içerisinde çift tırnak, slash gibi özel karakteri de yazdırmak istiyorsak “/” karakterinden sonra o değerleri yazarız. Yani “va stringi” yazdır, ifadesini yazdırmak istiyorsak “/”va stringi/” yazdır” şeklinde yazarız.

 

Karakter Getirme – charAt() Metodu

 

charAt() metodu ise string içerisinde sıra sayısı belirtilen karakteri getirir. Stringler, karakterlerin dizileşmiş halleri olduğundan dizinler 0 (sıfırdan) başlar. Bu sebeple bizim 1.karakter olarak bahsettiğimiz ilk karakter aslında programlamada 0. karakterdir.

Biz de uygulama yaparken bu durumu göz önünde bulundurarak, n. karakteri istiyorsak (n-1). karakteri index değeri olarak vereceğiz. Uygulamasına geçelim :

Yukarıdaki uygulamada mesaj stringimizin 6. ve 13. karakterlerini ekrana yazdırdık. Bunun için charAt() metodu içerisine istediğimiz sıranın 1 değer düşük halini verdik. Bunun sebebinin dizilerde sıra sayısının 0 (sıfır)dan başlaması olduğunu söylemiştik. Sonuç aşağıdaki gibidir :

 

Büyük Küçük Harf Dönüştürme – toLowerCase() toUpperCase()

 

String bir ifadenin tamamını büyük harfe ya da küçük harfe dönüştürebiliriz. Bu durum programlama da sıklıkla kullanılır. Bunun için toLowerCase() ve toUpperCase() metodlarını kullanırız.

Metodlarımızın nasıl kullanıldığını uygulama ile görelim:

Uygulamada ilk olarak substring() metodunu kullanarak “Java” kısmını aldık ve toUpperCase() metodunu kullanarak bu kısmı büyük harfe çevirdik. Sonra aynı mesaj stringi içerisindeki “Dersleri” bölümünü aldık ve toLowerCase() metodunu kullanarak tamamını küçük harfe dönüştürdük. Sonuç aşağıdaki gibidir :

 

String İçerisinde Arama – contains() Metodu

 

contains() Metodu; bir string içerisinde arama yapmamızı sağlar. Aradığımız ifade string içerisinde mevcut ise true, yoksa false değer döndürür.

Uygulamasını görelim :

Programımızda mesaj stringi içerisinde ilk olarak “Program” kelimesini aratıp sonucu ekrana yazdırdık. Sonrasında “program” kelimesini aratıp ekrana yazdırdık. Sonuca bakalım :

Daha önce Java dilinin case sensitive yani büyük küçük harf duyarlı olduğundan bahsetmiştik. Dolayısıyla “Program” ve “program” kelimeleri Java için farklı ifadeler olarak algıladığından sonuçlardan biri true diğeri false geldi.

Bu sebeple bu metodu kullanacaksak aramak istediğimiz kelimeyi büyük küçük harfi aynen yazıldığı gibi yazmamız gerekecek.

Büyük küçük harf duyarlılığı olmadan yapmak isteseydik, nasıl yapardık acaba? Deneyelim :

İlk olarak mesaj stringimizin tamamını toLowerCase() metodu ile küçük harfe dönüştürdük. Sonrasında contains() metodu ile arama yapacağımız ifadeyi de küçük harfe dönüştürdükten sonra aramamızı yaptık. Sonucumuz aşağıdaki gibidir :

String Sınıfı dersimizi burada noktalıyoruz. Kafanıza takılanları,  sormak istediklerinizi aşağıdaki yorum panelini kullanarak bizlerle paylaşabilirsiniz. Umarım faydalı bir çalışma olmuştur.

 

Pin It on Pinterest

Daha fazla Java
Java programlama dersleri Boolean Veri Tipi
Java Programlama Dersleri – Boolean Veri Tipi

Sıfırdan Java programlama dersleri serisinde bu dersimizde “ Java Programlama Dersleri – Boolean Veri Tipi” konusuna değişeneceğiz. NetBeans IDE ve...

Kapat