Bu gece ilk kez gece yarısından önce yazacak vakit buldum, kaytarmak yok :) Bugün escape karakerler ile başlamak istiyorum geceye. Escape karakterler, Java programlama diline özgü bir kavram değildir ve hemen bütün programlama dillerinde aynı mantıkla çalışırlar, sadece dilden dile kullanılan ifadeler ya da syntax'lar değişiklik gösterebilir. Önce escape karakter nedir ve neden onları kullanmaya ihriyaç duyarız buradan başlayalım.
Çift tırnak karakterini ele alalım mesela, biz çift tırnakları String değişken tanımlarken ya da System.out.println() içerisinde çıktı alırken bolca kullandık. Mesela sabah günaydın demeye yarayan bir program için aşağıdaki gibi bir kod yazdık:
System.out.println("Günaydın");
Bu program da çalışınca çıktı olarak Günaydın çıktısını üretti. Yani biz tırnak içerisinde ne yazdıysak, bilgisayar bize onu yazdırdı. Peki ya bir tırnak işaretini de yazdırmak isteseydik ne olacaktı?
System.out.println(""Günaydın""); //hata
Tırnak içinde tırnak işareti yazdık ama Java ne yapmak istediğimizi anlayamadı ve bize kırmızı yazılarla Syntax Error hatası verdi. Ne yani, biz " karakterini yazdıramayacak mıyız şimdi Java'da? İşte excape karakter bu işe yarıyor. " yazdırmak için " yerine kullanabileceğimiz escape karakteri (kaçış karakteri olarak Türkçe'ye çevirebiliriz) \" oluyor. Yani sol tarafına ters slash ekleyince çift tırnak karakterinin kendini kullanabiliyoruz:
System.out.println("\"Günaydın\""); //"Günaydın"
Escape karakterlerin mantığını anladığımıza göre şimdi geçelim daha önce farklı işlevleri sağlamak amacıyla görevlendirilmiş diğer karakterlere ve onları nasıl çıktı alabileceğimize:
System.out.println("selam\tselam"); //tab kadar boşluk ekler
//Çıktı: selam selam
System.out.println("selam\bselam"); //backspace ekler
//Çıktı: selamselam
System.out.println("selam\nselam"); //bir satır aşağı atlar
//Çıktı:
//selam
//selam
System.out.println("selam\rselam"); //carriage return ekler
//Çıktı:selam
System.out.println("selam\fselam"); //form feed ekler
//Çıktı:selamselam
System.out.println("selam\'selam"); //' karakteri ekler
//Çıktı:selam'selam
System.out.println("selam\"selam"); //" karakteri ekler
//Çıktı:selam"selam
System.out.println("selam\\selam"); //ters slash karakteri ekler
//Çıktı:selam\selam