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.
İçindekiler
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ü Simgesi | Açıklama |
d | decimal (10 tabanlı) tam sayıları string olarak yazar |
o | octal (8 tabanlı) tam sayıları string olarak yazar |
x,X | hexadecimal (16 tabanlı) tam sayıları string olarak yazar |
f | float sayıları string olarak yazar |
e | üstel kayan nokta (exponential floating point) |
g | Bilimsel üstel gösterim (scientific notation) |
a | float sayılar 16 tabanlı (hexadecimal) olarak yazar |
c | Karaktere dönüştürür |
s | Stringe dönüştürür |
b | boolean değerleri true ya da false olarak yazar |
h | hashcode’u hexadecimal olarak yazar |
tx | tarih ve zaman desenleyici |
n | %n ile \n aynı işleve sahiptir satır başı yaparlar |
Desenciler Tablosu
Simge | Açı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şlik | Verinin kaç haneye yazılacağını belirtir |
.duyarlık | Kesirli sayıların kaç haneli yazılacağını belirler |
Dönüştürücüler | d, o, s, f… yukarıdaki tabloda hepsi belirtildi |
Bayraklar Tablosu
Bayrak | İşlevi |
+ | Sayının işaretini belirtir |
boşluk | pozitif sayıların soluna boşluk koyar |
0 | sayı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.
Merhaba, öncelikle blogunuz çok basarili, elinize emeginize sağlık, kodların ciktilarini da ekleseni ekranda nasıl gorunecegini çok daha faydalı olur diye düşünüyorum, ekleyebilirseniz sevinirim.
Merhaba tavsiyeniz için teşekkürler, ileride tekrar yazı girmeye başlarsam uygulayabilirim.