web-dev-qa-db-fra.com

Comment puis-je aligner des chaînes à gauche en utilisant String.format ()?

J'utilise String.format () dans Java essayant d'émuler le canal de contrôle printf () disponible en C. Je comprends comment spécifier qu'une chaîne doit être placée dans un champ qui prend 20 caractères, 5, 2 ... avec 3 décimales, 2, etc. Cependant, les chaînes sont imprimées alignées à droite dans leur champ.

Comment aligner à gauche les chaînes?

Voici un exemple d'une sortie possible que je voudrais modifier pour aligner à gauche EXECUTING et CREATED dans leurs champs.

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

* remarque: considérez '-' comme un espace vide

51
De La Cuesta

De la même manière qu'avec printf - utilisez un - modificateur au format

99
Chris Dodd

Comme ça?

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

Sortie:

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