2011-07-31 3 views

답변

189

:

%[argument_index$][flags][width][.precision]conversion 

옵션 의 argument_index가를 나타내는 10 정수 :

  • 형식의 일반, 문자 지정자 및 숫자 유형은 다음과 같은 구문을 갖습니다 인수리스트 내의 인수의 위치 형식 지정자 마지막 형식 지정자와 같은 인수를 참조 : 첫 번째 인수는

String.format("%1$s %1$s %1$s %1$s %1$s %1$s", hello); 
22

또 다른 옵션은 상대 색인를 사용하는 등, "2$"에 의해 두 번째, "1$"에 의해 참조됩니다. 예를 들어

: hello hello hello hello

String.format("%s %<s %<s %<s", "hello") 

결과.

+0

https://docs.oracle.com/javase/8/docs/api/java/util/Formatter.html#dpos : 형식이 올바른 것으로 나타나면, 공간은 텍스트 편집기에서 제거 할 수 있습니다 – Vadzim

0

String.format에서 인수를 다시 사용하는 일반적인 경우는 구분 기호 (예 : CSV의 경우 ";" 또는 콘솔의 경우 탭)입니다.

System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c")); 
// "a ; ; ; b" 

이것은 원하는 출력이 아닙니다. "c"은 어디에도 나타나지 않습니다.

System.out.println(String.format("%s %s %s %2$s %s %n", "a", ";", "b", "c")); 
// "a ; b ; c" 

스페이스가 가독성과 디버깅을위한 추가됩니다

당신은 (%s와) 먼저 구분 기호를 사용은 다음의 발행 수의 인수 지수 (%2$s)를 사용합니다.

System.out.println(String.format("%s%s%s%2$s%s%n", "a", ";", "b", "c")); 
// "a;b;c" 
관련 문제