Java : printf 문의 리터럴 퍼센트 부호


138

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에 실제 퍼센트 부호를 넣는 방법을 알 수 없습니까? \ %를 사용하여 탈출하면 효과가 있다고 생각했지만 그렇지 않습니다.

어떤 아이디어?

답변:


197

퍼센트 부호는 퍼센트 부호를 사용하여 이스케이프됩니다.

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

전체 구문은 에 액세스 할 수있는 자바 문서 . 이 특정 정보는 Conversions첫 번째 링크 섹션 에 있습니다.

컴파일러가 오류를 생성하는 이유는 제한된 양의 문자 만 백 슬래시 뒤에 올 수 있기 때문입니다 . %유효한 문자가 아닙니다.


102

이스케이프 된 퍼센트 부호는 두 배 퍼센트 (%%)입니다.

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

2

Apache Commons Logging 유틸리티에서 StringEscapeUtils를 사용하거나 각 문자에 대한 코드를 사용하여 수동으로 이스케이프 할 수 있습니다.


from 은 사용되지 않으므로 StringEscapeUtilsfrom을 사용해야합니다 . commons-textcommons-lang3
Eric Wang
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.