JAVA NOTLARI STRİNG DERS-7
Java 7 Ders 07 : String Sınıfı ve Metotları
Uzun bir aranın ardından tekrardan merhabalar arkadaşlar. Öncelikle niye bu kadar ara verdik onu açıklayalım. Malumunuz vize haftasındaydık ve bu nedenden ötürü yazılarıma biraz ara vermiştim; ancak kaldığımız yerden ve hız kesmeden devam edelim Bugün “String” sınıfını göreceğiz.
String Sınıfı
String, karakter katarı demektir. Hatırlarsanız programlarımızda sayıları her türlü işleyip kullanabiliyorduk. Ancak bir kelime yazmaya kalktığımızda karakter dizisi kullanmamız gerekirdi. Çünkü char tipi sadece tek bir karakteri tutabilirdi. Peki kelimeleri veya cümleleri nasıl tutabilir ve işleyebiliriz ? Java tasarımcıları da aynen bu şekilde düşünmüşler ve yeni bir tip yazmışlardır. Bildiğiniz gibi yeni bir tip oluşturmak için yeni bir sınıf yazmak gerekirdi. Bu nedenle String, bir sınıftır ve bu sınıf içerisinde çeşitli metotlar mevcuttur. String sınıfı, Java kütüphanelerinde bulunur ve en çok kullanılan sınıftır diyebiliriz. Bu dersimizde de bunlar hakkında bilgi sahibi olacak ve Java’da bir basamak daha atlamış olacağız
String Tanımı
Bir karakter katarı(dizisi) saklayacağımız zaman yukarıda tanımını yaptığımız String sınıfından bir nesne oluşturur ve saklayacağımız veriyi o nesneye göndeririz. Deklarasyon şöyle olur :
String nesneAdi = “karakterKatari“; veya String nesneAdi = new String(“karakterKatari“);Yukarıdaki iki tanım da aynı nesneyi oluşturur. İlk kullanım değişken deklarasyonu gibidir, ancak String özel bir sınıf olduğundan bu şekilde bir tanımlama bile ondan bir nesne üretir. İkinci kullanım zaten bir nesne deklarasyonu örneğidir. Yapılandırıcıya “karakterKatari” verisini gönderir.
Herhangi bir String verisi tanımlarken onu çift tırnak(” “) içinde yazmamız şarttır. Çift tırnak bir String ifadesi olduğunu gösterir ve Java bunu gördüğünde bu ifadenin bir String olduğuna kanaat getirir. Aynı olay; bir sayı yazdığımızda Java’nın onu varsayılan tip olan int tipinde tanımasıdır. Örneğin ilk yazımızdaSystem.out.println(“Hello World !”) komutunu yazmıştık. Bu komuttaki “Hello World !” ifadesi bir String’tir.
Aşağıdaki örneğimizi inceleyim :
Çıktımız :
Örnekte de görüldüğü üzere String, bir kelime veya bir cümle biçiminde olabilir. Bunun sınırı yoktur; isterseniz paragraf da saklayabilir.
String’ler karakter dizileridir demiştik ve evet onları aynen bu şekilde düşünebilirsiniz. Bir String’de birden fazla karakter saklanır. Bunu da dizi gibi düşünmemiz hiç de yanlış olmayacaktır.
Peki bir String sadece ona bir kelime veya cümle yazarak mı tanımlanır ? Elbette hayır. Bir String birden fazla şekilde oluşturulabilir. Örneğin String yapılandırıcısına bir karakter dizisi gönderebilirsiniz :
Çıktımız :
Yukarıdaki örneğimizde yeni oluşturduğumuz String nesnesine, yapılandırıcısına bir karakter dizisi göndererek değer verdik. Bu kullanımda bir problem yoktur ancak diğer tanımlama tipinde bu göndermeyi yaptığımızda bir cast hatası alırız. char dizisi, String tipine dönüşemez. Yapılandırıcı bunu nasıl halletti diyorsanız; içerisindeki çeşitli işlemlerle parametre olarak aldığı char dizisini, elemanlarını birleştirip bir String olarak sundu.
String oluşturmanın bir diğer yolu ise bir başka String’i kullanmaktır :
Çıktımız :
Yukarıdaki örneğimizde ise bir String’i atayarak yeni String’ler oluşturduk.
String Metotları
Yukarıda String yapılandırıcılarını bir nebze işlemiş olduk daha fazla ayrıntıya pek gerek yok. Şimdi String sınıfı içerisinde tanımlanmış olan metotları ve görevlerini işleyelim. (Konu sonunda kapsamlı bir örnek verilecektir.)
1. concat() Metodu
Bu metot çağırıldığı String’e, parametre olarak aldığı String’i ekler. Yani iki String’i ‘boşluklar dahil’ birleştirir. Kullanımı :
stringNesnesi.concat(stringNesnesi);Aynı işlem “+” operatörüyle de yapılır :
stringNesnesi + stringNesnesi;2. equals() Metodu
Bu metot eşitlik metodudur ve geriye boolean bir değer döndürür. Bu metodu çağıran String, parametredeki String’e eşitse true, değilse false değeri döner. Kullanımı :
stringNesnesi.equals(stringNesnesi);Aynı işlem “==” operatörüyle de yapılır :
stringNesnesi == stringNesnesi;3. length() Metodu
Bu metot, kendisini çağıran String’in uzunluğunu int bir değer şeklinde geri döndürür. Kullanımı :
stringNesnesi.length();4. charAt() Metodu
Bu metot, yine bir String ile çağırılır ve int bir parametre alır. Aldığı parametreye göre geriye bir char değer döndürür. Peki bu nasıl olur ? Parametre olarak alınan int değer, bir indisi belirtir. Metot, bu indis değerine göre String’in ilgili indisteki karakterini döndürür. Eğer belirtilen indis mevcut değilse, indis bulunamadı hatası döndürür. Kullanımı :
stringNesnesi.charAt(sayi);5. substring() Metodu
Bu metot, kendisini çağıran String’in belirtilen parçasını yine bir String olarak geri döndürür. Hangi bölümünün alınacağı yine parametre olarak verilen int’ler sayesinde bulunur. Kullanımı :
stringNesnesi.substring(baslangicIndis, bitisIndis);Burada baslangicIndis’teki karakter dahil olup, bitisIndis’teki dahil değildir.
6. trim() Metodu
Bu metot, kendisini çağıran String’in önündeki ve sonundaki boşlukları silip bize geri döndürür. Kullanımı :
stringNesnesi.trim();7. toUpperCase() ve toLowerCase() Metodu
Bu metotlar, kendisini çağıran String’in tüm harflerini büyük harf veya küçük harfe çevirir. toUpperCase() büyük harfe çevirirken, toLowerCase() küçük harfe çevirir. Kullanımı :
stringNesnesi.toUpperCase(); stringNesnesi.toLowerCase();8. compareTo() Metodu
Bu metot, kendisini çağıran String ile parametre olarak aldığı String’i karşılaştırır ve geriye int bir değer döndürür. Bu karşılaştırmayı, sözlük sırasına göre yapar. Java’nın sözlüğü ASCII tablosu olduğuna göre karşılaştırmayı da yine bu tabloya göre yapar. Örneğin “A”, ” Z”‘den küçüktür. Kullanımı :
stringNesnesi.compareTo(stringNesnesi2);
String sınıfının metotları elbette sadece bunlar değildir; ancak şimdilik bunları bilmemiz yeterlidir. Metotları daha iyi kavramak adına aşağıdaki kapsamlı örneğimizi inceleyelim :