2017-11-23 2 views
1

내 생산 코드에서 서식 매개 변수를 지정하지 않고도 java.lang.String#format 메서드를 사용하면 형식의 첫 번째 문자를 "먹습니다"라는 것을 알았습니다. %myStringValue자바 1.8 : 형식 매개 변수없이 호출 할 때 문자열 # 형식

참조, 퍼센트 문자 중 하나가 떨어져 얻는 방법 :

따라서

String.format("%%myStringValue\r\n"); 

는 다음과 같은 콘솔 출력을 생성? 왜 그래야만하지? 메서드의 docblock에서 그 어떤 힌트도 찾을 수 없었습니다. // 문서 :

+3

으로 해석 될 수있는 자체 문자는 %를 인쇄 할 수하는 '이스케이프 시퀀스'입니다. oracle.com/javase/8/docs/api/java/util/Formatter.html)의 "Conversions"에서 '%%'는'% '로 변환됩니다. – khelwood

+0

그것은 정상적으로 작동합니다. '%'는 형식 문자열의 특수 문자이기 때문에 출력에서 ​​퍼센트 기호 하나를 얻으려면'%% '로 이스케이프 처리해야합니다. – Jesper

+0

가능한 [String.Format에서 %를 이스케이프하는 방법]의 가능한 복제본 (https://stackoverflow.com/questions/5011932/how-to-escape-in-string-format) –

답변