如何使用 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 位等。但是,字符串在其字段中右对齐打印。
如何左对齐字符串?
这是一个可能的输出示例,我想在其字段中将其修改为左对齐 EXECUTING
和 CREATED
。
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 中进行对齐?
2个span标签,一个是图片 一个是文本,怎么让2个span 在同一行,并且图左对齐,字居中