1

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を使用できます。

このためのロジックを構築する必要がありますか、それともいくつかの組み込み関数を認識していませんか?

4

1 に答える 1

3

テキストを中央に配置する 1 つの方法を次に示します。

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 に答える