"Size String.format yönteminden de bahsetmek istiyorum ."

" String sınıfının statik bir yöntemi ama çok kullanışlı. Dolambaçlı bir yaklaşım izleyeyim."

"Tek bir metin satırında birkaç değişken görüntülemeniz gerekirse, bunu nasıl yaparsınız?"

"Ne metni?"

"Bu, örneğin:"

Aşağıdaki değişkenler göz önüne alındığında:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Gerekli çıktı:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Bunun gibi bir şey yapardım:"

String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;

System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");

"Pek okunaklı değil, değil mi?"

"Bence sorun yok."

"Ama uzun değişken adlarınız varsa veya veri almak için yöntemleri çağırmanız gerekiyorsa, o zaman çok okunabilir olmaz:"

System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");

"Eğer durum buysa, evet, pek okunabilir olmaz."

"Gerçek şu ki, bu gerçek programlarda her zaman olur, bu yüzden size String.format yöntemiyle hayatınızı nasıl basitleştirebileceğinizi göstermek istiyorum."

"Lütfen çabuk söyle, bu nasıl bir büyülü yöntem?"

"Yukarıdaki kodu şu şekilde yazabilirsiniz:"

String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())

System.out.println(text);

" String.format yönteminin ilk parametresi, değer koymak istediğimiz yere özel karakterler (%s, %d) içeren bir biçim dizesidir."

"Format stringinden sonra %s ve %d karakterlerinin yerini alacak değerleri geçiyoruz."

"Bir dizge eklememiz gerekirse %s yazarız; bir sayıya ihtiyacımız varsa %d kullanırız."

"Bunu bir örnekte görmek daha kolay olacaktır:"

Örnek
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Sonuç:
s "a = 1, b = 4, c = 3" e eşit olacaktır

"Evet, bu çok uygun."

"Ve bunu şu şekilde de yapabilirsiniz:"

Örnek
int a = -1, b = 4, c = 3;
String template;
 if (a < 0)
  template = "Warning! a = %d, b = %d, c = %d";
 else
  template = "a = %d, b = %d, c = %d";

System.out.println(String.format(template, a, b, c) );
Çıktı:
Warning! a = -1, b = 4, c = 3

"Hmm. Bu gerçekten yararlı bir yöntem. Teşekkürler Ellie."

"Format yöntemiyle diğer veri türlerini kullanmak istiyorsanız, işte size yardımcı olacak bir tablo:"

Sembol Tip
%S Sicim
%D tamsayılar: int, uzun vb.
%F gerçek sayılar: kayan nokta, çift
%B mantıksal
%C karakter
%T Tarih
%% Yüzde işareti %

"Aslında, bu biçim belirticilerin de kendi ayarları ve alt ayarları vardır."

"Ama bu başlaman için yeterli. Değilse, işte resmi belgelerin bağlantısı:"

Ek malzemeye bağlantı