Java のテキストを左右に揃える方法を教えてください。

JavaではStringBuilderクラスと文字列フォーマットを利用することで文字列の左右揃えを実現できます。

左寄せするには、StringBufferのappendメソッドで文字列を逐次追加し、各文字列の後ろに適正な数の空白を追加して、必要な幅にします。サンプルコードを以下に示します。

public static String leftAlign(String text, int width) {
    StringBuilder sb = new StringBuilder(text);
    int padding = width - text.length();
    for (int i = 0; i < padding; i++) {
        sb.append(" ");
    }
    return sb.toString();
}

右揃えの場合、StringBuilderのinsertメソッドを使用して、必要な幅になるまで各文字列の前に適切な数の空白を挿入できます。サンプルコードは次のとおりです。

public static String rightAlign(String text, int width) {
    StringBuilder sb = new StringBuilder();
    int padding = width - text.length();
    for (int i = 0; i < padding; i++) {
        sb.append(" ");
    }
    sb.append(text);
    return sb.toString();
}

使用例:

public static void main(String[] args) {
    String text = "Hello";
    int width = 10;
    
    String leftAlignedText = leftAlign(text, width);
    System.out.println(leftAlignedText); // Output: "Hello     "
    
    String rightAlignedText = rightAlign(text, width);
    System.out.println(rightAlignedText); // Output: "     Hello"
}

前記サンプルは左右揃えを実現するために文字列の後方または前方へ適切な分量の空白を追加し、複雑な折り返しなどの状況は考慮していません。全体のテキストを左右揃えにし、折り返し状況などを考慮する場合は、より複雑な仕組みが必要になる可能性があります。

bannerAds