我正在使用printf()在Java中创建输出来创建表头。其中一列需要可变宽度。
基本上它应该是这样的:
//two coords
Trial Column Heading
1 (20,30)(30,20)
//three coords
Trial Column Heading
1 (20,40)(50,10)(90,30)
我试图使用:
int spacing = numCoords * 7; //size of column
printf("Trial %*^s", column, "Column Heading");
但是当我尝试在转换语句中使用*或^时,我一直收到输出错误。
有没有人知道正确的格式化字符串应该是什么?
答案 0 :(得分:6)
使用Commons Lang library中的StringUtils.center:
StringUtils.center(column, "Column Heading".length());
答案 1 :(得分:3)
Java不支持“*”格式说明符。而是将宽度直接插入格式字符串:
int spacing = numCoords * 7; //size of column
System.out.printf("Trial %" + spacing + "s", "Column Heading");
答案 2 :(得分:-1)
在Java中,使用System.out.println()
根据您的要求,您应该使用类似的东西,
System.out.println("Trial"+getSpacer(spacing)+"Column Heading");
这里的getSpacer(int spaces)会返回一个包含你想要的空格数的字符串。