1

当左右对齐使用格式化程序等如此简单时,为什么要找到一个字符串函数来居中对齐我的字符串是一项如此艰巨的任务?

我想格式化我的输出文件

                                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 到字符串。

我必须为此建立一个逻辑还是我不知道一些内置功能?

4

1 回答 1

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();
    }
}
于 2012-09-28T19:33:24.973 回答