为什么在使用Formatter等左右对齐非常简单时找到一个String函数来居中对齐我的字符串是一项如此艰巨的任务。
我想格式化输出文件
Nodes Expanded
Euclidean Manhattan Chessboard
Input1 2 2 2
Input2 6 6 6
Input3 - - -
伪代码:
String line1="Nodes Expanded";
line1.center(50); //length of string =50
我可以将PrintWriter用于String。
我必须为此构建逻辑,还是我不知道某些内置函数?
答案 0 :(得分:3)
以下是将文字置于中心的一种方法:
public String center (String s, int length) {
if (s.length() > length) {
return s.substring(0, length);
} else if (s.length() == length) {
return s;
} else {
int leftPadding = (length - s.length()) / 2;
StringBuilder leftBuilder = new StringBuilder();
for (int i = 0; i < leftPadding; i++) {
leftBuilder.append(" ");
}
int rightPadding = length - s.length() - leftPadding;
StringBuilder rightBuilder = new StringBuilder();
for (int i = 0; i < rightPadding; i++)
rightBuilder.append(" ");
return leftBuilder.toString() + s
+ rightBuilder.toString();
}
}