2011-02-04 27 views
34

JavaでString.format()を使用して、Cで使用可能なprintf()コントロールチャンネルをエミュレートしようとしています。文字列を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

( "% - 10S"、 "テスト")' –

+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); –

関連する問題