Java: signe de pourcentage littéral dans l’instruction printf

J’essaie d’append un signe de pourcentage réel dans une instruction printf en Java et je reçois l’erreur suivante:

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 

Je n’arrive pas à comprendre comment mettre un signe de pourcentage réel dans mon printf? Je pensais qu’utiliser \% pour y échapper fonctionnerait, mais ce n’est pas le cas.

Des idées?

Le signe de pourcentage est échappé en utilisant un signe de pourcentage:

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

La syntaxe complète est accessible dans les documents java de sun . Cette information particulière se trouve dans la section Conversions du premier lien.

La raison pour laquelle le compilateur génère une erreur est que seule une quantité limitée de caractères peut suivre une barre oblique inverse. % n’est pas un caractère valide.

Le signe de pourcentage échappé est double pour cent (%%):

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

Vous pouvez utiliser SsortingngEscapeUtils à partir de l’utilitaire Apache Commons Logging ou vous échapper manuellement en utilisant du code pour chaque caractère.