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("" + "%");
   }
}
Другие вопросы по тегам