Подтвердить что ты не робот

Как я могу выровнять строки с помощью String.format()?

Я использую 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

* note: рассмотрим '-' как пустое пространство

4b9b3361

Ответ 1

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

Ответ 2

Как это?

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