Java:在printf语句中使用文字百分号

Dom*_*nic 125 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 escape character
                System.out.printf("%s\t%s\t%1.2f\%\t%1.2f\%\n",ID,pattern,support,confidence);
                                                          ^
2 errors
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何将一个实际的百分号放入我的printf?我认为使用\%来逃避它会起作用,但事实并非如此.

有任何想法吗?

sou*_*rge 186

百分号使用百分号进行转义:

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

完整语法可以访问Java文档.此特定信息位于第Conversions一个链接的部分.

编译器生成错误的原因是只有有限数量的字符可能跟随反斜杠.%不是有效的角色.


cle*_*tus 94

转义百分号为双倍百分比(%%):

System.out.printf("2 out of 10 is %d%%", 20);
Run Code Online (Sandbox Code Playgroud)