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

Posted

技术标签:

【中文标题】如何使用 String.format() 左对齐字符串?【英文标题】:How can I left-align strings using String.format()? 【发布时间】:2011-06-21 01:38:24 【问题描述】:

我在 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

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

【问题讨论】:

【参考方案1】:
System.out.format("%-10d%-32s%-16s%-16s%-32s", obj.getId(), obj.getBname(), obj.getAname(),obj.getLanguage(),obj.getPublication());

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

【讨论】:

【参考方案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

【讨论】:

不过,这并不合理。这需要使用'-'。 System.out.printf("进程 PID: %5d 状态 : %s\n", pids[i++], s);【参考方案3】:

与 printf 相同——在格式中使用 - 修饰符

【讨论】:

如果您使用的是位置说明符,String.format("%1$-10s", "test") 你能在你的答案中加入一个例子吗?

以上是关于如何使用 String.format() 左对齐字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中的 string.Format 中进行对齐?

string.Format 格式化字符串输出

如何用CSS让文字左对齐,图片居中

2个span标签,一个是图片 一个是文本,怎么让2个span 在同一行,并且图左对齐,字居中

Python 里的 String format问题, 我搞不懂这个东西到底是怎么用的。

cdr文本框的英文总是凑到一排,然后上面字间距很大,求解怎么设置让英文接在上面?