2011-02-04 1 views
34

Java에서 C에서 사용 가능한 printf() 컨트롤 채널을 에뮬레이트하려고 String.format()을 사용하고 있습니다. 문자열을 20 자, 5, 2 개의 필드에 넣어야한다고 지정하는 방법을 이해합니다. .3 소수 자릿수, 2 등. 그러나 문자열은 필드에서 오른쪽 정렬로 인쇄됩니다.String.format()을 사용하여 어떻게 문자열을 왼쪽 정렬 할 수 있습니까?

어떻게 문자열을 왼쪽 정렬합니까?

다음은 해당 입력란에 왼쪽 맞춤 EXECUTINGCREATED을 수정하려는 출력 예입니다.

Process PID: 25 Status: -----------  EXECUTING 
Process PID: 36 Status: READY-SUSPENDED 
Process PID: 4 Status: ----------------  CREATED 

* 참고 사항 : 고려 '-'의 printf와 같은 빈 공간으로

답변

73

같은 방법 - 형식이 같이

+22

("% - 10 초", "테스트")' –

+0

그리고 당신은 위치 지정자,'및 String.format를 ("사용하는 경우 % 1 $ -10s ","test ")' – jff

3

- 수정을 사용할 수 있습니까?

class F { 
    public static void main(String ... args) { 
    String [] status = { "EXECUTING", "READY-SUSPENDED", "CREATED" }; 
    int [] pids = {123, 34, 1231 }; 
    int i = 0; 
    for(String s : status) { 
     System.out.printf("Process PID: %5d Status : %s%n", pids[i++], s); 
    } 
    } 
} 

출력 :

및 String.format`에서와
$java F 
Process PID: 123 Status : EXECUTING 
Process PID: 34 Status : READY-SUSPENDED 
Process PID: 1231 Status : CREATED 
+5

그러나 이것은 왼쪽 정렬되지 않습니다. 그것은 '-'의 사용을 필요로합니다. – AHungerArtist

+0

System.out.printf ("프로세스 PID : % 5d 상태 : % s \ n", pids [i ++], s); –