Menu

Java String Biçimlendirme: String.format, printf ve Biçim Belirteçleri

Java'da String.format ve printf ile string nasıl biçimlendirilir - sayılar, dolgu ve ondalıklar için biçim belirteçleri ile text block'lar ve formatted yöntemi.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Biçimlendirmenin İki Yolu

Java, string'leri biçim belirteçleri (% yer tutucuları) içeren bir şablon ile yerleştirilecek değerlerden biçimlendirir. İki giriş noktası vardır ve bunlar aynı söz dizimini paylaşır:

  • String.format(template, values...) yeni bir String döndürür.
  • System.out.printf(template, values...) sonucu doğrudan yazdırır.

İkisi de aynı metni üretir. String.format saklayabilmeniz için metni geri verir; printf ise konsola yazar. printf şablonunun sonundaki %n ifadesine dikkat edin - bu, platformdan bağımsız satır sonudur (biçim string'lerinde \n yerine bunu tercih edin).

Yaygın Belirteçler

Her belirteç % ile başlar ve ne tür bir değer beklendiğini belirten bir harfle biter:

Günlük olarak kullanılan üçü %s (herhangi bir değer, toString aracılığıyla), %d (tam sayılar) ve %f (ondalıklar) belirteçleridir. Düz bir yüzde işareti yazdırmak için %% kullanın. Yanlış tür geçmek - örneğin %d belirtecine bir String - çalışma zamanında bir IllegalFormatConversionException fırlatır.

Ondalık Basamakları Denetleme

%f varsayılan olarak altı ondalık basamak kullanır ki bu nadiren istediğiniz şeydir. Hassasiyeti sabitlemek için f harfinden önce .N koyun (değer yuvarlanır):

Büyük sayılarda gruplama ayırıcıları için virgül bayrağı ekleyin:

Genişlik ve Dolgu

% ile tür harfi arasına yazılan bir sayı, sütunların hizalanması için boşluklarla doldurarak en az alan genişliğini belirler. Baştaki bir - sola hizalar; baştaki bir 0 sayıları sıfırlarla doldurur:

Biçimlendirilmiş tabloları ve hizalı raporları okunaklı kılan da budur:

%-8s adları 8 genişliğindeki bir sütunda sola hizalar ve %5d puanları 5 genişliğindeki bir sütunda sağa hizalar; böylece sayılar basamak sayısından bağımsız olarak hizalanır.

Argüman Sırası

Varsayılan olarak belirteçler değerleri soldan sağa tüketir. Bir değeri N$ (bir tabanlı dizin) ile tekrarlayabilir veya yeniden sıralayabilirsiniz; bu, aynı değer iki kez göründüğünde işe yarar:

%1$s her iki seferde de ilk argümana atıfta bulunur, dolayısıyla echo iki kez yazdırılır.

formatted() Yöntemi

Java 15'ten beri her string'in bir formatted örnek yöntemi vardır - String.format ile aynı motor, sadece şablon üzerinde bir yöntem çağrısı olarak yazılmıştır:

Daha büyük biçimlendirilmiş çıktılar oluştururken text block'larla (üç tırnaklı çok satırlı string'ler) özellikle iyi uyum sağlar.

String.format Ne Zaman Kullanılmamalı

Basit, tek seferlik birleştirmeler için + ile düz birleştirme daha açık ve daha hızlıdır:

String greeting = "Hi, " + name + "!";   // simpler than String.format here

Gerçek biçimlendirmeye ihtiyacınız olduğunda - sabit ondalık basamaklar, dolgu, hizalama, gruplama - sadece birkaç değeri yapıştırmak için değil, String.format / printf'e başvurun.

Sıradaki: Operatörler

Biçimlendirme, değerleri metne dönüştürür. Bu değerleri en baştan hesaplamak için Java'nın operatörlerine ihtiyacınız var - aritmetik, karşılaştırma ve mantıksal. İşte bir sonraki sayfa bu.

Sıkça Sorulan Sorular

Java'da bir string nasıl biçimlendirilir?

String.format(template, values...) kullanın; bu, her biçim belirtecinin bir değerle değiştirildiği yeni bir string döndürür: String.format("%s is %d", name, age). Bir string oluşturmak yerine doğrudan yazdırmak için aynı şablonla System.out.printf(...) kullanın. Java 15'ten beri template.formatted(values...) de çağırabilirsiniz.

Java'da bir sayı iki ondalık basamağa nasıl biçimlendirilir?

%.2f belirtecini kullanın: String.format("%.2f", 3.14159) "3.14" üretir. Noktadan sonraki sayı kaç ondalık basamağın tutulacağını belirtir ve değer yuvarlanır. Binlik ayırıcılar için virgül bayrağı ekleyin: %,.2f "1,234.57" verir.

Java'da String.format ile printf arasındaki fark nedir?

İkisi de tam olarak aynı biçim belirteçlerini kullanır. String.format(...) biçimlendirilmiş metni saklayabileceğiniz veya etrafta dolaştırabileceğiniz yeni bir String olarak döndürür. System.out.printf(...) biçimlendirilmiş metni doğrudan standart çıktıya yazar ve kullanışlı bir şey döndürmez. Bir string oluşturmak için String.format, bir tane yazdırmak için printf kullanın.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA