Programlama esnasında bazı ifadeleri belirli bir biçim içerisinde yazmamız istenirse String.Format( ) metodu kullanılır.
Bu metot geriye string türünde bir veri döndürür.Örneğin metinsel ifadelerin belirli bir biçim içerisinde ekranda yazılmasını istiyorsak;
Yukarıdaki resmi incelediğimizde String.Format( ) metodunun kullanımında, küme parantezleri ( { } ) içerisindeki ilk değer, degisken isimli değişken içerisindeki değeri referans göstermektedir. İkinci değer ise değişkenin içeriğinin, ekranda kaç karakterlik alan kaplayacağını (Örn: Bu değer 5 ise ekranda 6 karakterlik, -7 ise 8 karakterlik yer kaplar) belirtir.
Bu değerin pozitif olması, değişken değerinin ayrılan alanının sağına hizalı olacağını, negatif olması ise soluna hizalı olacağını belirler.
Örnek :Sıra No, Adınız, Soyadınız şeklinde başlıkları olan ve içeriği dolu olan bir tablo hazırlayıp, ekrana yazdırınız.
Console.WriteLine(“——————————-”); Console.WriteLine(“Sıra No | Adınız | Soyad”); Console.WriteLine(“——————————-”); Console.WriteLine(String.Format(“{0,7} | {1,-8} | {2,10}”, 1, “Ali”, “AYDIN”)); Console.WriteLine(String.Format(“{0,7} | {1,-8} | {2,10}”, 2, “Hasan”, “KOŞAN”)); Console.WriteLine(String.Format(“{0,7} | {1,-8} | {2,10}”, 3, “Selim”, “KAÇAN”)); Console.WriteLine(“——————————-”);
Örneğin int türündeki sayısal ifadelerin belirli bir biçim içerisinde ekranda yazılmasını istiyorsak;
String.Format(“{0:00000}”, 15); // “00015″
String.Format(“{0,5}”, 15); // ” 15″
ifadesiyle 15 sayısı ekrana başına 3 adet boşluk eklenerek toplamda 5 karakterlik bir alana sağa hizalı olarak yazılır.
String.Format( ) metodunun sıfır ve negatif sayılar için özel formları vardır. Sayılar biçimlenirken kullanılan noktalı virgül (;) ile formatı 3 bölüme ayırırız. Buradaki ilk bölüm sayının değerini, ikinci bölüm negatif sayıların biçimini, üçüncü bölüm ise sıfırın ekrana nasıl yazılacağının biçimini belirlememize yardımcı olur.
String.Format(“{0:#;eksi #}”, 15); // “15″
String.Format(“{0:#;eksi #}”, -15); // “eksi 15″
String.Format(“{0:#;eksi #;Sıfır}”, 0); // “Sıfır”
Sayıları isteğe bağlı biçimlendirmek istersek (örneğin bir telefon numarasını
alan kodu ve telefon numarası ayrı ayrı yazılsın istiyorsak), biçimlendirme
işleminde diyez (#) işareti ile formatımızı belirleriz;
String.Format(“{0:### ## ##}”, 1234567); // 123 45 67
String.Format(“{0:(#) ###-##-##}”, 12345678); //(1) 234-56-78
ifadesiyle 15 sayısı ekrana başına 3 adet 0 eklenerek toplamda 5 karakter olarak yazılır.
Örneğin tarih/saat türündeki ifadelerin belirli bir biçim içerisinde ekranda yazılmasını istiyorsak;
Tarih/Zaman ifadelerini belirtmek için önceden belirlenmiş bazı anahtar harfler vardır.
Bunlar;
y: Yıl,M: Ay, d: Gün,
h: 12’lik sistemde saat, H: 24’lük sistemde saat m: Dakika
s: Saniye f: Salise z: Zaman dilimi
Örnek : 14.02.2006 18:05:07.123 zamanına ait değerlerin gösterimleri şu şekilde sağlanır;
DateTime dt = new DateTime(2006, 2, 3, 18, 5, 7, 123); Console.WriteLine(“Tarih:”+dt); Console.WriteLine(“————————-”); Console.WriteLine(“Yıl gösterimleri: “+String.Format(“{0:y yy yyy yyyy}”, dt)); Console.WriteLine(“Ay gösterimleri: ” + String.Format(“{0:M MM MMM MMMM}”, dt)); Console.WriteLine(“Gün gösterimleri: ” + String.Format(“{0:d dd ddd dddd}”, dt)); Console.WriteLine(“Saat gösterimleri: ” + String.Format(“{0:h hh H HH}”, dt)); Console.WriteLine(“Dakika gösterimleri: ” +String.Format(“{0:m mm}”, dt)); Console.WriteLine(“Saniye gösterimleri: ” +String.Format(“{0:s ss}”, dt)); Console.WriteLine(“Salise gösterimleri: ” +String.Format(“{0:f ff fff ffff}”, dt)); Console.WriteLine(“Zaman dilimi gösterimleri: ” +String.Format(“{0:z zz zzz}”, dt));