Java Table 显示的格式字符串:以 80 个字符换行
Java Format String for Table Display: Wrap at 80 chars
我需要以 table/grid 格式显示列表,因此我使用 String.format()
如下例所示,
how to print object list to file with formatting in table format using java
我的问题是我需要将输出强制换行为 80 个字符。 table 的最大宽度为 80,任何进一步的输出必须在下一行继续。
这可能吗?
当前代码,未实现换行:
StringBuilder sbOutput = new StringBuilder();
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", "F1", "F2", "F3", "F4", "F5"));
for (MyObject result: myObjects) {
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", result.getF1(),
result.getF2(), result.getF3(), result.getF3(), result.getF4()));
}
您可以像这样每 80 个字符在字符串中插入一个换行符:
str.replaceAll(".{80}(?=.)", "[=10=]\n");
因此您的代码将变为:
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", result.getF1(),
result.getF2(), result.getF3(), result.getF3(), result.getF4())
.replaceAll(".{80}(?=.)", "[=11=]\n"));
搜索正则表达式表示“后面有一个字符的 80 个字符”,替换中的 "[=12=]"
表示 "everything matched by the search"。
(?=.)
是一个前瞻性断言匹配后跟任何字符,这可以防止输出是 80 个字符的精确倍数,并在其后添加不必要的换行符。
我需要以 table/grid 格式显示列表,因此我使用 String.format()
如下例所示,
how to print object list to file with formatting in table format using java
我的问题是我需要将输出强制换行为 80 个字符。 table 的最大宽度为 80,任何进一步的输出必须在下一行继续。
这可能吗?
当前代码,未实现换行:
StringBuilder sbOutput = new StringBuilder();
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", "F1", "F2", "F3", "F4", "F5"));
for (MyObject result: myObjects) {
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", result.getF1(),
result.getF2(), result.getF3(), result.getF3(), result.getF4()));
}
您可以像这样每 80 个字符在字符串中插入一个换行符:
str.replaceAll(".{80}(?=.)", "[=10=]\n");
因此您的代码将变为:
sbOutput.append(String.format("%-14s%-200s%-13s%-24s%-12s", result.getF1(),
result.getF2(), result.getF3(), result.getF3(), result.getF4())
.replaceAll(".{80}(?=.)", "[=11=]\n"));
搜索正则表达式表示“后面有一个字符的 80 个字符”,替换中的 "[=12=]"
表示 "everything matched by the search"。
(?=.)
是一个前瞻性断言匹配后跟任何字符,这可以防止输出是 80 个字符的精确倍数,并在其后添加不必要的换行符。