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


Я использую строку.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 44

2 ответа:

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

Вот так?

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