web-dev-qa-db-ja.com

String.format()を使用して文字列を左揃えするにはどうすればよいですか?

String.format()を使用してJava Cで使用可能なprintf()制御チャネルをエミュレートしようとしています。文字列が20文字、5、2 ... 3桁の小数、2など。ただし、文字列はフィールド内で右揃えで印刷されます。

文字列を左揃えするにはどうすればよいですか?

以下に、フィールドのEXECUTINGCREATEDを左揃えに変更したい出力例を示します。

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

*注意:空のスペースとして「-」を考慮してください

51
De La Cuesta

Printfと同じ方法--修飾子をフォーマットで使用します

99
Chris Dodd

このような?

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);
    }  
  }
}

出力:

$Java F
Process PID:   123 Status : EXECUTING
Process PID:    34 Status : READY-SUSPENDED
Process PID:  1231 Status : CREATED
3
OscarRyz