我在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
*注意:将' - '视为空格
答案 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());
只需在数字前添加连字符-
。