问题
我试图在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?我认为使用\%来逃避它会起作用,但事实并非如此。
有任何想法吗?
#1 热门回答(165 赞)
百分号使用百分号进行转义:
System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);
可以通过sun's java docs访问complete syntax。此特定信息位于第一个链接的Conversions
部分。
编译器生成错误的原因是只有有限数量的characters可能跟随反斜杠.%
不是有效字符。
#2 热门回答(85 赞)
转义百分号为双倍百分比(%%):
System.out.printf("2 out of 10 is %d%%", 20);
#3 热门回答(2 赞)
你可以使用Apache Commons Logging实用程序中的StringEscapeUtils,也可以使用每个字符的代码手动转义。