Java Ders 6 – Çıktı Biçimleme – Type Casting

Java Derslerinden bir bölüm daha. Bugün print ve println kullanarak gönderdiğimiz çıktıları daha biçimli şekilde yollamayı göreceğiz. Bu işlem için Java bizlere printf() metodunu sunmakta bunun dışında Type Casting (Tip Dönüşümü) yani veri tipleri değişim işlemi yapmak isteyebiliriz. Örneğin byte tipinde bir numarayı int tipe çevirmek veya float bir numarayı int tipe çevirmek gibi.

Biçimli Çıktı Almak

Java’da biz metinleri String olarak adlandırıyorduk bundan daha önce defalarca bahsettim. Biçimli çıktılara formatted output diyoruz. Çıktıya istediğimiz şekli vermek demektir. Çıktı için bir şablon belirlemekle başlıyoruz sonra bu şablonu uyguluyoruz ve buna uygun olarak ilgili çıktı görünüyor. Bunu yapmak için 2 metoda sahibiz.

printf(String format, Object args);Belirlenen şablona uygun çıktıyı verir. Etkin işletim sisteminin kullandığı dile uydurur.
printf(Locale l, String format, Object args);Stringe dönüşen çıktıyı ilk parametrede belirtilen (Locale) uydurur.

Java Çıktı Biçimleme Örnek

Yukarıdaki örnekte basit bir örnek görüyoruz. %s String tipinde veri geleceğini söylüyor araya yazılan 15 sayısı ise pozitif ise sağa yanaşık, negatif ise sola yanaşık yazdır demek \n kaçış ifadesi bir alt satıra atıyor printf() otomatik yapmadığı için eklememiz gerekiyor. Son olarak virgül bırakıp veriyi giriyoruz. Bu sayede biçimli bir çıktı alıyoruz.

Java Çıktı Biçimleme Örnek 2

Printf() $ Simgesinin Kullanımı

Yukarıdaki örnekte birden fazla veri tipini yan yaza yazdırdık. Bunu sıraya göre yaptı yani bizden bir emir almadan düz şekilde dizdi. Biz bu sıranın bozulmasını isteyip kendimize göre sıralar vererek dizebiliriz. Bunu yapmak için $ işaretiyle kaçıncı veriyi alacağını belirleriz. Aşağıdaki örnek daha açıklayıcı olacaktır.

Ondalıklı Sayılarda Kesirli Kısmı Belirlediğimiz Kadar Yazdırma

Float veya Double tipindeki verilerde kesir kısmını yani arta kalan kısmı 6 haneli olarak yazar veya kendi tamamlayarak yazmaya çalışır. Diyelim 6 hane yoksa kendisi yanına sıfırlar ekleyerek tamamlar. Para birimi yazdırdığımız zamanlar bize virgülden sonraki 2 kısım gerekecektir. Yani 14,99’un 99 kısmı eğer biçimleme yapmazsak 14,990000 olarak yazdıracaktır. Hadi nasıl biçimli yazacağız görelim.

Dönüştürücüler Tablosu

Dönüştürücü SimgesiAçıklama
ddecimal (10 tabanlı) tam sayıları string olarak yazar
ooctal (8 tabanlı) tam sayıları string olarak yazar
x,Xhexadecimal (16 tabanlı) tam sayıları string olarak yazar
ffloat sayıları string olarak yazar
eüstel kayan nokta (exponential floating point)
gBilimsel üstel gösterim (scientific notation)
afloat sayılar 16 tabanlı (hexadecimal) olarak yazar
cKaraktere dönüştürür
sStringe dönüştürür
bboolean değerleri true ya da false olarak yazar
hhashcode’u hexadecimal olarak yazar
txtarih ve zaman desenleyici
n%n ile \n aynı işleve sahiptir satır başı yaparlar

Desenciler Tablosu

SimgeAçıklama
%Yer tutucu
[ ]İçleri isteğe bağlıdır gerekirse yazılır
indis$Desenin kaçıncı değişkeni biçimleyeceğini belirler
Bayraklar+, #, 0 gibi simgeler aşağıda tablosuna yer verildi
GenişlikVerinin kaç haneye yazılacağını belirtir
.duyarlıkKesirli sayıların kaç haneli yazılacağını belirler
Dönüştürücülerd, o, s, f… yukarıdaki tabloda hepsi belirtildi

Bayraklar Tablosu

Bayrakİşlevi
+Sayının işaretini belirtir
boşlukpozitif sayıların soluna boşluk koyar
0sayının önüne sıfır koyar
çıktıyı sola yanaşık yazar
(negatif sayıları () içine alır
,sayıyı binliklere ayırır
#f desenci de her sayıya kesir ayracı koyar
#x desenci de her hex çıktısının önüne 0 yada 0x koyar
^Çıktıyı büyük harflere çevirir
$Desene kaçıncı değişkenin gireceğini belirler
<Önce desenlenen değişkeni belirtir. %d %<x nakışı ile yazılan tam sayıyı hex sisteme dönüştürür.

Binliklere Ayırma Örneği

Şablonu Dışarıdan Verme Örneği

Casting (Döküm) İşlemi Nedir?

Casting bir sayısal veriyi, ait olduğu tipten alıp başka bir sayısal veri tipine dönüştürmektir. Örnek olarak şunu düşünürsek konuyu daha kolay biçimde kavrayabiliriz. Biri içi su dolu öteki boş 2 kap düşünelim. Dolu kaptaki suyu boş olana boşaltırken ortaya 3 durum çıkar.

  • Kaplar eşitse, dolu kaptaki su boş kaba kayıpsız dökülür.
  • Küçük kaptaki su büyük kaba kayıpsız dökülebilir.
  • Büyük kaptaki su küçük kaba dökülürse, kaba sığmayan kısmı taşar.

Tip dönüşümlerinde küçük tipleri büyük tiplere dönüştürmek sorun çıkarmaz. Fakat büyük tipleri küçüklere dönüştürürken değer kaybı olabilir ayrıca tipler uygun değilse ondalık kısım kaybedilir. Aşağıda tipler küçükten büyüğe doğru sıralanmıştır.

Type Casting Örnek

Bugünkü Java Dersimizde Stringleri printf() metoduyla biçimlendirmeyi ve tip dönüşümünü (type casting) öğrendik. Her iki konuda oldukça önemlidir. Bol bol örnek yaparak Java çıktı biçimleme ve tip dönüşüm konularını pekiştirmeniz faydanıza olacaktır. Bir sonraki dersimizde görüşmek üzere.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir