Daha önce yayımladığım “Java Değer ve Referans Tipleri” yazımın “Değişken Tanımlama” başlığı altında, değişken tanımlamanın 2 aşamasından bahsetmiştim. Konu ile alakalı olması nedeniyle isEmpty() ve isBlank() metotlarının anlatımına geçmeden önce değişken tanımlamanın detaylarının bilinmesi gerektiğini düşünüyorum. Bu nedenle, bu yazımda kısaca bahsedeceğim değişken tanımlama konusunun detayları için ilgili yazımı inceleyebilirsiniz.
- Aşama – Değişkenin programa tanıtılması (Declaration)
- String dizeReferansi;
- Aşama – Değişkenin ilk değerinin atanması (Initialization)
- dizeReferansi = new String(“Tam Weblik!”); veya,
- dizeReferansi = “Tam Weblik!”;
Yalnızca ilk aşama gerçekleştirildiğinde değişken tanıtılmış, her iki aşama da gerçekleştiğinde değişken tanımlanmış oluyordu. Bu bilgi ışığında öncelikle Java’ da bir dizenin hangi hallerde bulunabileceği üzerinde duralım.
Bir dize 4 ayrı durumda olabilir:
- Null: Tanıtılmış fakat tanımlanmamış veya tanımlanırken null değeri atanmıştır.
- (a) String nullString; veya,
- (b) String nullString = null;
- Empty: Tanımlanmış fakat hiçbir karakter içermemektedir.
- String emptyString = “”;
- Blank: Tanımlanmış ve içeriğinde sadece boşluk karakteri veya karakterleri barındırmaktadır.
- String blankString = “ ”;
- Normal durum: Tanımlanmış ve içeriğinde boşluk dışında en az 1 karakter barındırmaktadır. İlaveten boşluk karakterlerini de içerebilir.
- String normalString = “Tam Weblik!”;
Yukarıdaki durumların ilkinde (1a) tanıtılmış fakat tanımlanmamış bir nesne üzerinde metot çağrısı yapılamaz. nullString.xMetot(); şeklinde bir kullanım derleme zamanı hatasına sebep olur ve muhtemelen kullandığımız editör bu kodu çalıştırmamıza izin vermeyecektir. Tanımlanmış fakat tanımlanırken null değeri atanmış nesneler (1b) üzerindeki metod çağrıları ise çalışma zamanında NullPointerException hatası verecek ve programımız ilgili koda geldiğinde sonlanacak yani doğru çalışmayacaktır.
Java String isEmpty() Metodu;
Bir string nesnesinin içeriğindeki karakter adedi 0 (sıfır) ise yani hiç elemanı yoksa, başka bir deyişle hiçbir şeyden oluşuyorsa true (doğru) , içeriğinde 1 veya daha fazla karakter barındırıyorsa false (yanlış) mantıksal sonucunu veren String sınıfı metodudur. Aslen isEmpty() metodu çağırıldığında, arka planda bir dizenin boşluklar ve özel karakterler de dâhil olmak üzere kaç adet karakter içerdiğini tam sayı değeri olarak veren length() metodu çalıştırılmaktadır.
Java String isBlank() Metodu;
Bir string nesnesinin içeriğindeki karakter adeti 0 (sıfır) ise veya tüm karakterler boşluk (white space) ise, diğer bir deyişle dizede hiç karakter yok (empty) veya sadece boşluk karakteri ya da karakterlerini içeriyorsa true (doğru), aksi durumlarda false (yanlış) değerini döndürür. Aksi durumlardan kasıt, dizenin boşluk karakteri dışında en az 1 tane karakter içeriyor olmasıdır.
Tanımlanmış Dize | isEmpty(); | isBlank(); |
---|---|---|
String emptyString = “”; | true | true |
String blankString = “ ”; | false | true |
String normalString = “tamweblik.com”; | false | false |
public class StringEmptyAndBlankExample {
public static void main(String[] args) {
String dize1 = "";
String dize2 = " ";
System.out.println("dize1 karakter adeti: " + dize1.length());
System.out.println("dize1 isEmpty: " + dize1.isEmpty());
System.out.println("dize1 isBlank: " + dize1.isBlank());
System.out.println("-----------------------");
System.out.println("dize2 karakter adeti: " + dize2.length());
System.out.println("dize2 isEmpty: " + dize2.isEmpty());
System.out.println("dize2 isBlank: " + dize2.isBlank());
/* Çıktısı:
dize1 karakter adeti: 0
dize1 isEmpty: true
dize1 isBlank: true
-----------------------
dize2 karakter adeti: 5
dize2 isEmpty: false
dize2 isBlank: true
*/
}
}
Java programlama dili öğrenim sürecinde dize manipülasyonları yaparken sıkça kullanacağımız metotlardan olduğunu düşündüğüm isEmpty() ve isBlank metotlarına dair söyleyeceklerim bu kadar. Diğer yazılarımda görüşmek üzere…