Java: printf deyiminde sabit yüzde işareti


138

Java'da bir printf ifadesine gerçek bir yüzde işareti eklemeye çalışıyorum ve şu hatayı alıyorum:

lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                 ^
lab1.java:166: illegal escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                          ^
2 errors

Printf'ime gerçek bir yüzde işaretini nasıl koyacağımı çözemiyorum? Kaçmak için \% kullanmanın işe yarayacağını düşündüm, ama işe yaramıyor.

Herhangi bir fikir?

Yanıtlar:


197

Yüzde işareti, yüzde işareti kullanılarak atlanır:

System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);

Söz diziminin tamamına java belgelerinde erişilebilir . Bu özel bilgi, Conversionsilk bağlantının bölümünde yer almaktadır.

Derleyicinin bir hata oluşturmasının nedeni, yalnızca sınırlı sayıda karakterin ters eğik çizgiyi takip edebilmesidir. %geçerli bir karakter değil.


102

Kaçan yüzde işareti çift yüzdedir (%%):

System.out.printf("2 out of 10 is %d%%", 20);

2

Apache Commons Logging yardımcı programından StringEscapeUtils'i kullanabilir veya her karakter için kodu kullanarak manuel olarak kaçabilirsiniz.


Kaynağından biri kullanımdan kaldırıldığı için StringEscapeUtilsfrom kullanmalıdır . commons-textcommons-lang3
Eric Wang
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.