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

我不知道怎么把真正的百分比符号输入到我的打印文件中?我以为用% 来逃避会有用,但是没用。

有什么想法吗?

143821 次浏览

使用百分号转义百分号:

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

Java 文件中可以访问 完整的语法。这个特殊的信息在第一个链接的 Conversions部分。

编译器产生错误的原因是只有有限数量的 角色可以跟在反斜杠后面。%不是有效字符。

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

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

可以使用 Apache Commons Logging 实用工具中的 StringEscapeUtils,也可以使用针对每个字符的代码手动转义。

检查以下代码——-

public class Printer {
public static void main(String[] args) {
System.out.printf("2 out of 10 is %d%%", 20);
}
}