Java:printf语句中的文字百分比符号

Java:printf语句中的文字百分比符号,java,printf,escaping,Java,Printf,Escaping,我试图在Java中的printf语句中添加一个实际的百分号,但得到了错误: 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 esc

我试图在Java中的printf语句中添加一个实际的百分号,但得到了错误:

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中加上实际的百分号?我原以为用\%来逃避它会奏效,但事实并非如此


有什么想法吗?

使用百分号转义百分号:

System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);
可在中访问。此特定信息在第一个链接的
转换部分中


编译器生成错误的原因是,反斜杠后面可能只有有限数量的错误<代码>%
不是有效字符。

转义百分比符号是双百分比(%):


您可以使用Apache Commons Logging utility中的StringEscapeUtils,也可以使用每个字符的代码手动转义。

应该使用
Commons文本中的
StringEscapeUtils
,因为
Commons-lang3
中的StringEscapeUtils已被弃用。
System.out.printf("2 out of 10 is %d%%", 20);