ProgramingTip

Java의 형식 암호화에서 $ 이해

bestdevel 2020. 10. 18. 18:55
반응형

Java의 형식 암호화에서 $ 이해


 StringBuilder sb = new StringBuilder();
 // Send all output to the Appendable object sb
 Formatter formatter = new Formatter(sb, Locale.US);

 // Explicit argument indices may be used to re-order output.
 formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
 // -> " d  c  b  a"

이 경우 $에 2가 추가되는 이유는 무엇입니까?


는 다음과 관련 2이 없습니다 $.

  • %     = 형식 확장 시작
  • 4$   = 네 번째 인수 ( 'd')
  • 2     = 너비 2 (오른쪽 정렬)
  • s     = 이동 유형

2$여기 목록에서 두 번째 인수를 수단으로 사용했습니다. $ 다음 숫자가하지를옵니다. 마, 4$여기에 네 번째 인수를 제안하십시오.

더하기 위해 %2$2s형식을 부분으로 나눌 수 있습니다.

  • % -형식적으로 나타납니다.

  • 2$ -여기에 두 번째 값 인수를 넣어야 함을 보여줍니다.

  • 2 -형식은 2 자입니다.

  • s -값을 공유로 형식화

설명서에서 자세한 정보 를 사용할

수 있습니다 .


%4$2s이는 네-th 인수를 너비 2 문자열로의 형식화하는 신호 가있는 위치 인수입니다 . 이것은 소스 코드를 건드리지 않고 인수를 재정렬하는 지역화를 위해 유용을 제공 할 때 특히합니다.

날짜 및 시간을 사용하는 유형에 대한 형식 지정자는 다음 구문을 갖습니다.

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

선택 사항 argument_index은 인수 목록에서 인수의 위치를 ​​나타내는 10 진수 정수입니다. 첫 번째 인수는에서 참조 "1$"하고 두 번째 인수는에서 참조합니다 "2$". 포맷터 문서


%: 형식

4$: 네 번째 값 인수

2: 너비 (인수가 인쇄 될 때 길이)

s: 공유 인수 변환입니다.

예를 들어, 다음 스 니펫 :

StringBuffer sb=new StringBuffer();

Formatter formatter=new Formatter(sb,Locale.UK);

formatter.format("-%4$5s-%3$5s-%2$5s-%1$5s-", "a", "b", "c", "d");

System.out.println(sb);

다음과 같은 출력을 생성합니다.

-    d-    c-    b-    a-

(인수 당 5 자 너비, 공백으로 채워짐)

및 교체 5로하면 2, 다음과 같은 출력을 생성 할 것이다 :

- d- c- b- a-

차이점이 보이십니까? :)

참고 URL : https://stackoverflow.com/questions/1915074/understanding-the-in-javas-format-strings

반응형