Как выровнять строки по левому краю, используя String.format ()? - PullRequest
48 голосов
/ 04 февраля 2011

Я использую String.format () в Java, пытаясь эмулировать канал управления printf (), доступный в C. Я понимаю, как указать, что строка должна быть помещена в поле, которое принимает 20 символов, 5, 2.... с 3 десятичными числами, 2 и т. д. Однако строки печатаются по правому краю в их поле.

Как выровнять строки по левому краю?

Вот пример возможноговывод, который я хотел бы изменить для выравнивания по левому краю EXECUTING и CREATED в их полях.

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

* примечание: считайте '-' пустым пробелом

Ответы [ 2 ]

95 голосов
/ 04 февраля 2011

Так же, как с printf - используйте модификатор - в формате

3 голосов
/ 04 февраля 2011

Как это?

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
...