temelde printf hep aynı halt ama işte pas geçmeyelim.
%[flags] [precision] [width] [conversion-character]
System.out.printf(“this is a format string”,123)
gibi bir yapısı var. parantezin içine iki argüman alır
format string + (object/değişken/değer)
bunu bir format specifier ile yani % işareti kullanırız.
System.out.printf("Burasi string %d",123456);
Burasi string 123456
d= decimal –> conversion character
%d gördüğü yere virgülden sonra ki değeri yazıyor.
%b : boolean
%c: char
%s : string
%d : integer
%f : float, double
Width
kac karakterle değerin yazılacağını belirttir.
örnek %10s –> string 10 karakter ile yazılacaktır.
System.out.printf("Burasi %d string \n",123456);
System.out.printf("Burasi %20d string ",123456);
output
Burasi 123456 string
Burasi 123456 string
Precision
double veya floating point outputunda kaç digitin yazılacağını belirlemek için kullanılır.
Örneğin noktadan sonra iki digit için.
double DD = 1500.256;
System.out.printf("Buras %f string \n",DD);
System.out.printf("Buras %.2f string ",DD);
output
Buras 1500,256000 string
Buras 1500,26 string
flags
– : sola yasla
+ : sayısal değerler için işareti yaz.
0 : 0 padding yap sayısal değerlere
, : sayılar 1000 den bğzğkse virgül ile gruplandır.
double DD = -15000.256;
System.out.printf("Buras %f string \n",DD);
System.out.printf("Buras %,020.2f string ",DD);
Buyurun 🙂
Buras -15000,256000 string
Buras -000000000015.000,26 string
%,020.2f –> , : 1000 den büyükse ayırımı göster (1.000.000 gibi) –> 0 ile padding yap –> 20 karakterlik alana yasla –> decimal olarak 2 digit yaz.