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

我试图添加一个实际的百分号到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); 

完整的语法可以在sun的java文档中访问。 此特定信息位于第一个链接的“ Conversions ”部分。

编译器产生错误的原因是只有有限的字符可能跟在反斜杠之后。 %不是有效的字符。

转义百分号是百分之二(%%):

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

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