144 votes

Java : Signe de pourcentage littéral dans l'instruction printf

J'essaie d'ajouter un signe de pourcentage réel dans une instruction printf en Java et j'obtiens 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 à trouver comment mettre un vrai signe de pourcentage dans mon printf ? Je pensais que l'utilisation de \% pour l'échapper fonctionnerait, mais ce n'est pas le cas.

Des idées ?

212voto

soulmerge Points 37314

Le signe pour cent est échappé à l'aide d'un signe pour cent :

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

El syntaxe complète est accessible dans docs java . 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 seulement une quantité limitée de caractères peut suivre un backslash. % n'est pas un caractère valide.

111voto

cletus Points 276888

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

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

2voto

Vous pouvez utiliser StringEscapeUtils de l'utilitaire Apache Commons Logging ou échapper manuellement en utilisant un code pour chaque caractère.

0voto

Raj Points 204

Vérifiez le code ci-dessous ---

public class Printter {
   public static void main(String[] args) {
      System.out.println("" + "%");
   }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X