String yenistring= String.Format(“Birim Fiyatı : {0}”,fiyat); |
Burada {0} ifadesiyle, ifadenin yerine fiyat isimli değişkenin geleceğini belirtiyoruz. Bu şekilde birden fazla da değişken tanımlaması yapabiliriz, ancak burada değişkene hiçbir format uygulamadık. Sadece indeks {0} da yazılabildiği gibi, aşağıdaki gibi köşeli parantezlerin içersindeki opsiyonel olan parametrelerde alabilir.
{ index[,alignment][:formatString]}
alignment : hizalama + veya – tamsayı değerlerini alabilir, + sağa dayalı, - ise sola dayalı sıralanmasını sağlar. Örneğin;
String.Format("> {1,10}< ”, “Sağa”); Çıktısı: > Hello< String.Format(">{1,-10} <”, “Sola”); Çıktısı: >Hello < |
:formatstring : format katarı
Dikkat ederseniz alignment virgül(,) ile ayrılırken, formatstring'i üst-üste iki nokta(:) ile ayırıyoruz. Formatstring parametresi değişkenlerin belirli bir formatta gösterilmesini sağlamaktadır. Örneklere bakacak olursak kullanım biçimi kolayca anlaşılabilir.
Basit Format:
Belirteç | İsmi | Format | Örnek 1(double 2.25 için) | Örnek 2 (int 22500 için) |
C veya c | Currency | {0:c} | 2,25 YTL | 22.500,00 YTL |
D veya d | Decimal | {0:d} | Hata | 22500 |
E veya e | Exponential | {0:e} | 2,250000e+000 | 2.250000e+004 |
F veya f | Fixed-point | {0:f} | 2,25 | 22500,00 |
G veya g | General | {0:g} | 2,25 | 22500 |
N veya n | Number | {0:n} | 2,25 | 22.500,00 |
P veya p | Percent | {0:p} | %225,00 | %2.250.000,00 |
R veya r | Round-Trip | {0:r} | 2,25 | Hata |
X veya x | Hexadecimal | {0:x} | Hata | 57e4 |
Örnek
VB | C# |
Dim girdi as Double Dim cikti as String girdi=2.25 cikti=String.Format(“{0:c}”,girdi)Sonuç ------------------------------Cikti=2,25 YTL |
double girdi; string cikti; girdi=2.25; cikti=String.Format(“{0:c}”,girdi);Sonuç ------------------------------Cikti=2,25 YTL |
Özel Format:
Belirteç | İsmi | Format | Örnek1(1200.35 için) |
0 | Zero placeholder | {0:00.0000} | 1200,3500 |
# | Digit placeholder | {0:(#).##} | (1200),35 |
. | Decimal point | {0:0.0} | 1200,4 |
, | Thousand separator | {0:0,0} | 1.200 |
,. | Number scaling | {0:0,.} | 1 |
% | Percent | {0:0%} | 120035% |
e | Exponent placeholder | {0:00e+0} | 12e+2 |
Örnek
VB | C# |
Dim girdi as Double Dim cikti as String girdi=1200.35 cikti=String.Format(“{0:(#).##}”,girdi)Sonuç ------------------------------Cikti=(1200),35 |
double girdi; string cikti; girdi=1200.35; cikti=String.Format(“{0:(#).##}”,girdi);Sonuç ------------------------------Cikti=(1200),35 |
Tarih Formatlama
Belirteç | isim | Örnek(DateTime.Now() için) |
d | Short date | 01.04.2005 |
D | Long date | 01 nisan 2005 Cuma |
t | Short time | 20:24 |
T | Long time | 20:24:27 |
f | Full date & time | 01 Nisan 2005 Cuma 20:24 |
F | Full date & time (long) | 01 Nisan 2005 Cuma 20:24:27 |
g | Default date & time | 01.04.2005 20:24 |
G | Default date & time (long) | 01.04.2005 20:24:27 |
M | Month day pattern | 01 Nisan |
r | RFC1123 date string | Fri, 01 Apr 2005 20:24:27 GMT |
s | Sortable date string | 2005-04-01 20:24:27 |
u | Universal sortable, local time | 2005-04-01 T20:24:27Z |
U | Universal sortable, GMT | 01 Nisan 2005 Cuma 17:24:27 |
Y | Year month pattern | Nisan 2005 |
Örnek
VB | C# |
Dim girdi as DateTime Dim cikti as String girdi = DateTime.Now() cikti=String.Format(“{0:M}”,girdi)Sonuç ------------------------------Cikti=01 Nisan |
DateTime girdi; string cikti; girdi = DateTime.Now; cikti=String.Format(“{0:M}”,girdi);Sonuç ------------------------------Cikti=01 Nisan |
Özel Tarih Formatlama
Belirteç | İsmi | Örnek | Örnek Çıktısı |
dd | Day | {0:dd} | 01 |
ddd | Day Name | {0:ddd} | Cum |
dddd | Full Day Name | {0:dddd} | Cuma |
f, ff, ... | Second fractions | {0:fff} | 531 |
gg, ... | Era | {0:gg} | A.D. |
hh | 2 dgit hour | {0:hh} | 08 |
HH | 2 digit hour(24 Hour) | {0:HH} | 20 |
mm | Minute 00-59 | {0:mm} | 53 |
MM | Minute 01-12 | {0:MM} | 04 |
MMM | Month abbreviation | {0:MMM} | Nis |
MMMM | Full month name | {0:MMMM} | Nisan |
ss | Seconds 00-59 | {0:ss} | 56 |
tt | AM or PM | {0:tt} | * |
yy | Year, 2 digits | {0:yy} | 05 |
yyyy | Year | {0:yyyy} | 2005 |
zz | Timezone offset, 2 digits | {0:zz} | +03 |
zzz | Full timezone offset | {0:zzz} | +03:00 |
: | Separator | {0:hh:mm:ss} | 08:53:56 |
/ | Separator | {0:dd/MM/yyyy} | 01/04/2005 |
Örnek
VB | C# |
Dim girdi as DateTime Dim cikti as String girdi = DateTime.Now() cikti=String.Format(“{0:ddd}”,girdi)Sonuç ---------------------------Cikti=Cum |
DateTime girdi; string cikti; girdi = DateTime.Now; cikti=String.Format(“{0:ddd}”,girdi);Sonuç ---------------------------Cikti=Cum |
* Dil olarak İngilizce ayarlanmışsa PM/AM değerlerini göstermektedir, Türkçe ise boş dönmektedir.
Ekstra Örnek1:
String.Format("{0:#,###.00;-#,###.00;0}", değer); |
Burada ilk format pozitif sayılar için, ikinci format negatif sayılar ve son format da 0(sıfır) girildiğinde uygulanır; değerin veri türü double' dır.
Girdi: 12050.230 Çıktı: 12,050.23 Girdi: -12050.230 Çıktı: -12,050.23 Girdi: 0 Çıktı: 0 |
Ekstra Örnek2:
String.Format("{0:(###) ###-####}", 8005551212); Çıktı : (800) 555-1212 |
NOT: Formatlamada formatlama yapacağımız veri türü önemlidir, mesela sayı formatlarında double veya int, tarih için datetime, metin için ise string türünde değişkenlerinin girilmesi gerekir.
Formatlama hakkında daha detaylı bilgi için http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconFormattingOverview.asp?frame=true
String.Format("{0:0,0}", sonuc)