Java programlama dilinde char ifadeleri üzerine bir takım bilgiler edineceğiz.
Açıkçası ilkel bir tür olarak görülen char, tek karakterleri temsil etmektedir. Önceki makalemizde yer alan Stringleri ele alırsak her bir string ifadesi içerisindeki harf, char değeri olarak depolanır.
char basHarf = 'M';
System.out.println(basHarf+". Topuz");
Örneğimize göz atarsak dikkat etmemiz gereken iki şey vardır.
- Veri tipi char olarak belirlenen değişkenlerin değerleri tek tırnak içerisinde kullanılır.
- Veri tipi char olarak belirlenen değişkenler yalnızca tek karakterlik değerler alırlar. (Aksi bir durum söz konusudur, konunun devamında...)
Bu sebepleri göz önünde bulundurarak yazdığımız yukarıdaki kodumuzun çıktısı : M. Topuz olacaktır
Bir Metnin Herhangi Bir Karakterini Almak: charAt
String olarak elimizde var olan bir kelimeyi baz alalım ve kelimenin herhangi bir harfini char olarak almak istediğimizi düşünelim. Örneğimiz şöyle olsun;
String kisi = "502490EMert";
char cinsiyet = kisi.charAt(6);
System.out.println(kisi+" ile temsil edilen kişinin cinsiyeti: "+cinsiyet);
Şeklinde bir kodun çıktısı: 502490EMert ile temsil edilen kişinin cinsiyeti: E olacaktır.
Yani charAt ile belirlenen sayıda yer alan karakteri char değişkenimize yükleyebiliyoruz.
char Veri Tipindeki Değişkenlerde Eşitlik
String'den farklı olarak mantıksal ifadeleri char veri tipine sahip değişkenler için kullanabiliriz.
char cevap = 'D';
if(cevap == 'D') {
System.out.println("Soruyu Doğru Cevapladınız!");
} else {
System.out.println("Soruyu Yanlış Cevapladınız!");
}
Şeklindeki bir kodun çıktısı: Soruyu Doğru Cevapladınız! olacaktır.
Basit Bir Şifreleme Örneği
Oldukça basit bir şifreleme örneğini aşağıda inceleyeceğiz. Şifrelenecek metinde mantık olarak 3 karakter sonrası ile karakter yer değiştirecek ve böylece yeni bir metin elde edilecek.
String webSite = "merttopuz";
System.out.print("Metin: "+webSite+"\nŞifrelenmiş Hali: ");
for(int i=0; i<webSite.length(); i++) {
char karakter = webSite.charAt(i);
karakter = (char) (karakter + 3);
if(karakter > 'z') {
karakter = (char) (karakter - 26);
} else if(karakter < 'a') {
karakter = (char) (karakter + 26);
}
System.out.print(karakter);
}
Gördüldüğü üzere charAt() kullanarak aldığımız karakteri 3 karakter öteye götürerek yeniden yazdırdık ve böylece phuwwrsxc çıktısını elde ettik. Aynı işlemi tersine yaparak tekrar ilk metnimizi elde edebiliriz.
String sifrelenmis = "phuwwrsxc";
for(int i=0; i<sifrelenmis.length(); i++) {
char karakter2 = sifrelenmis.charAt(i);
karakter2 = (char) (karakter2 - 3);
if(karakter2 > 'z') {
karakter2 = (char) (karakter2 - 26);
} else if(karakter2 < 'a') {
karakter2 = (char) (karakter2 + 26);
}
System.out.print(karakter2);
}