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? Я думал, что с помощью \% можно избежать этого, но это не так.
Есть идеи?
4 ответа
Знак процента экранируется с помощью знака процента:
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);
Вы можете использовать StringEscapeUtils из утилиты ведения журнала Apache Commons или выйти вручную, используя код для каждого символа.
Проверьте код ниже ---
public class Printter {
public static void main(String[] args) {
System.out.println("" + "%");
}
}