Apache Commons Lang/文字列を途中で省略して「...」を追加したい

文字列を途中で省略して「...」を追加したい 編集

具体的には次のような場合です。
文字列"あいうえおかきくけこさしすせそ"を文字列"あいうえお..."に変換したい。
この場合には次のメソッドを利用できます。

利用メソッド 編集

パッケージ
org.apache.commons.lang
クラス
StringUtils
メソッド
public static String abbreviate(String str, int maxWidth)
引数
str 省略対象文字列です。
maxWidth 戻り値の最大文字数です。maxWidthには"..."も含まれるため4以上にして下さい。
戻り値
省略された文字列です。 strがnullの場合はnullになります。
例外
IllegalArgumentException maxWidthが3以下の場合に投げられます。
利用可能バージョン
2.0~

サンプルコード 編集

以下のサンプルコードでは"あいうえおかきくけこさしすせそ"を"あいうえお..."に変換します。

import org.apache.commons.lang.StringUtils;

public class Abbreviate {
    public static void main(String[] args) {
        String str = "あいうえおかきくけこさしすせそ";
        int maxLength = 8;
        String result = StringUtils.abbreviate(str, maxLength);

        System.out.print(result);
    }
}

実行結果

あいうえお...

備考 編集

StringUtilsクラスには、文字列の後方だけでなく前方も省略するメソッド
「public static String abbreviate(String str, int offset, int maxWidth)」があります。
また文字列の前方・後方ではなく内側を、指定した文字列で省略するメソッド
「public static String abbreviateMiddle(String str, String middle, int length)」もあります。