我将文字附加到文本字段。由于某些州名称较长,因此列不是 格式很好。我该怎么办?
...
_result.append(text+"\n");
看起来像:
Alabama 1900 Birmingham Wide-Awake 1
District of Columbia 1901 Birmingham Wide-Awake 40
Illinois 1900 Blakeley Blakeley Sun 10
Colorado 1901 Blakeley Blakeley Sun 20
West Virginia 1900 Cahawba Alabama Watchman 30
Alabama 1901 Cahawba Alabama Watchman 50
答案 0 :(得分:1)
您可能需要根据列中最长的字符串添加制表符。像这样:
// add a tab(s) after each column value
_result.append(columnFiled +"\t");
//Finally add a new line
_result.append("\n");
答案 1 :(得分:1)
您可以使用Formatter Class格式化给定格式的字符串。这允许您指定格式说明符,通过它可以设置每个参数的宽度。通过这样做,您可以正确对齐列。
String[][] stateInfo = new String[][]{
{"Alabama", "1900", "Birmingham", "Wide-Awake", "1"},
{"Illinois", "1900", "Blakeley", "Blakeley Sun", "10"}};
for (String[] si: stateInfo){
String s = String.format("%1$-12s %2$-5s %3$-12s %4$-12s %5$-2s ",
si[0],si[1],si[2],si[3],si[4]);
System.out.println("String:"+s);
}
格式为%1s:
's','S'=如果参数arg为null,则结果为“null”。如果arg实现了Formattable,则调用arg.formatTo。否则,通过调用获得结果 arg.toString()。
“ - ”=结果将是左对齐的。
有关支持的其他格式,请参阅Formatter Class中的文档。