如何使用String.format()左对齐字符串?

时间:2011-02-04 00:21:37

标签: java string alignment string.format

我在Java中使用String.format()试图模拟C中可用的printf()控制通道。我理解如何指定字符串应该放在一个需要20个字符,5,2的字段中。 ..有3位小数,2位等。但是,字符串在其字段中右对齐打印。

如何左对齐字符串?

以下是我想在其字段中修改为左对齐EXECUTINGCREATED的可能输出的示例。

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

*注意:将' - '视为空格

3 个答案:

答案 0 :(得分:92)

与printf相同 - 使用格式为

-修饰符

答案 1 :(得分: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);
    }  
  }
}

输出:

$java F
Process PID:   123 Status : EXECUTING
Process PID:    34 Status : READY-SUSPENDED
Process PID:  1231 Status : CREATED

答案 2 :(得分:1)

System.out.format("%-10d%-32s%-16s%-16s%-32s", obj.getId(), obj.getBname(), obj.getAname(),obj.getLanguage(),obj.getPublication());

只需在数字前添加连字符-