How can I left-align strings using String.format()?
我在Java中使用String.format()尝试模拟C语言中可用的printf()控制通道。我了解如何指定将字符串放置在20个字符,5个,2个...的字段中, 3位小数,2位等。但是,字符串在其字段中右对齐打印。
如何将弦左对齐?
这是一个可能的输出的示例,我想将其修改为在其字段中左对齐EXECUTING和CREATED。
1 2 3
| Process PID : 25 Status : ----------- EXECUTING
Process PID : 36 Status : READY -SUSPENDED
Process PID : 4 Status : ---------------- CREATED |
*注:将"-"视为空白
与printf相同-使用-修饰符,格式为
-
如果您使用位置说明符,则String.format("%1$-10s","test")
像这样?
1 2 3 4 5 6 7 8 9 10
| 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 );
}
}
} |
输出:
1 2 3 4
| $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);