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

问题描述 投票:0回答:3

我在 Java 中使用

String.format()
尝试模拟 C 中可用的 printf() 控制通道。我了解如何指定应将字符串放置在需要 20 个字符、5、2 ... 和 3 的字段中小数、2 等。但是,字符串在其字段中打印时右对齐。

如何左对齐字符串?

这是一个可能的输出示例,我想将其修改为在其字段中左对齐

EXECUTING
CREATED

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

*注意:将“-”视为空格

java string alignment string.format
3个回答
117
投票

与 printf 相同 - 在格式中使用

-
修饰符


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

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

-


0
投票

像这样吗?

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
© www.soinside.com 2019 - 2024. All rights reserved.