Java: буквенный знак процента в выражении printf
Я пытаюсь добавить фактический знак процента в инструкцию printf в Java, и я получаю сообщение об ошибке:
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
Знак процента сбрасывается с помощью знака процента:
System.out.printf("%s\t%s\t%1.2f%%\t%1.2f%%\n",ID,pattern,support,confidence);
полный синтаксис можно получить в sun java docs. Эта конкретная информация находится в разделе Conversions
первой ссылки.
Причина, по которой компилятор генерирует ошибку, состоит в том, что только ограниченное количество characters может следовать обратной косой чертой. %
не является допустимым символом.
Ответ 2
Знак с несогласованным процентом равен удвоенному проценту (%%):
System.out.printf("2 out of 10 is %d%%", 20);
Ответ 3
Вы можете использовать StringEscapeUtils из утилиты ведения журнала Apache Commons или сбежать вручную, используя код для каждого символа.