0

我将文本附加到文本字段。由于某些州的名称很长,因此列的格式不正确。我能做些什么?

...
_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
4

2 回答 2

1

您可能需要根据列中最长的字符串添加选项卡。像这样的东西:

// add a tab(s) after each column value
_result.append(columnFiled +"\t");

//Finally add a new line
_result.append("\n");
于 2013-07-10T17:01:30.753 回答
1

您可以使用Formatter 类以给定格式格式化字符串。这允许您指定格式说明符,您可以通过这些说明符设置每个参数的宽度。通过这样做,您可以使列正确对齐。

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中的文档。

于 2013-07-10T17:29:55.040 回答