2017-01-16 4 views
2

Java의 String.format을 사용하여 문자열의 서식을 지정하려고합니다. 다음과 같은 문자열을 생성해야합니다 : "<padding spaces> int1/int2".Java string.format 다중 매개 변수가있는 전체 너비

지금은 " %1$d/%2$d10" 또는 "%1$d10/%2$" (또는 너비 설정이없는 경우 "%1$d/%2$d") 형식이지만 올바르게 작동하지 않습니다. 문자열을 오른쪽 너비에 맞게 정렬하고 전체 너비가 10 인 패딩으로 빈 공간을 할당하려고합니다.

단일 코드로 다른 코드에서 "%1$10.1f"을 사용하고 있습니다. double 정수는 같은 너비로 패딩되어야합니다.

나는 내 두뇌를 봤는데 두 개별 정수 대신 총 문자열을 채울 방법을 찾을 수 없습니다. 도움을 주시면 감사하겠습니다.

+0

용서 내 모바일 형식 – kwantuM

답변

1

처음 사용하는 이중 정수 문자열 만들기 :

int one = 1; 
int two = 2; 
String dints = String.format("%d/%d", one, two); 

그런 다음 10의 폭 문자열 dints를 포맷 :

String whatYouWant = String.format("%10s", dints); 

인쇄 whatYouWant를 출력합니다 :

 1/2 

당신에게 예를 들어 다음과 같이 가독성을 희생하면서 한 번에 호출 할 수도 있습니다. 짧은

String whatYouWant = String.format("%10s", String.format("%d/%d", one, two)); 

또는 :

String whatYouWant = String.format("%10s", one + "/" + two); 
+0

그래서 하나의 호출에 그것을 할 방법이 없다? 또한 문자열을 float 버전과 동일한 너비로 만들려면 두 번째 단계에서 패딩 9를 사용해야합니다. 이유를 설명해 주시겠습니까? 고마워요! – kwantuM

+1

첫 번째 질문을 해결하기 위해 답변을 업데이트했습니다. 나는 왜 당신이 9의 패딩을 사용해야하는지 정확히 모르겠다. 아마도 나는 당신이'% 10s '앞에 공간을 가지고 있을지도 모른다. 따라서 포맷 문자열은''% 10s "'이고 반면에 광산은''% 10s"'입니다. –

+0

버그가 실제로 다른 곳에서 발생했습니다. 코드가 정상적으로 작동합니다. – kwantuM

관련 문제