Class StringUtil

java.lang.Object
nablarch.core.util.StringUtil

public final class StringUtil extends Object
文字列ユーティリティクラス。
文字列に関する汎用的な処理を提供する。

本クラスのメソッドには、insert(String, String, int...)のように 文字列編集用途に使用するメソッドも用意されている。これらのメソッドは、 例えば、電話番号をハイフン区切りに整形する等のフォーマット処理用に使用されることを想定している。 プロジェクトでフォーマット用のユーティリティを作成する場合、これらのメソッドを使用するとよい。 本クラスはサロゲートペアに対応している。

Author:
Hisaaki Sioiri
  • Method Details

    • lpad

      @Published public static String lpad(String string, int length, char padChar)
      文字列の左側に、指定された文字を指定された文字列長に到達するまで加える。

      stringの文字数 >= length の場合はstringの文字列をそのまま返却。
      例:

       StringUtil.lpad("100", 10, '0'); //--> "0000000100"
       
      Parameters:
      string - 文字列(null不可)
      length - 変換後文字列のサイズ(0以上)
      padChar - 加える文字
      Returns:
      フォーマット後文字列
    • rpad

      @Published public static String rpad(String string, int length, char padChar)
      文字列の右側に、指定された文字を指定された文字列長に到達するまで加える。

      stringの文字数 >= length の場合はstringの文字列をそのまま返却。
      例:

       StringUtil.rpad("100", 10, '0'); //--> "1000000000"
       
      Parameters:
      string - 文字列(null不可)
      length - 変換後文字列のサイズ(0以上)
      padChar - 加える文字
      Returns:
      フォーマット後文字列
    • isNullOrEmpty

      @Published public static boolean isNullOrEmpty(String string)
      nullまたは空文字列判定を行う。
       |引数                | 戻り値
       +--------------------+--------
       | null               | true
       | ""                 | true
       | "hoge"             | false
       | " " (半角スペース) | false
       | " "(全角スペース) | false
       
      Parameters:
      string - 文字列
      Returns:
      nullまたは空文字列の場合はtrue
    • isNullOrEmpty

      @Published public static boolean isNullOrEmpty(String... strings)
      nullまたは空文字列判定を行う。

      与えられた文字列配列内の要素全てがnullまたは空文字であればtrueを返却する。

       |引数                | 戻り値
       +--------------------+--------
       | null               | true
       | {}                 | true
       | {"", null}         | true
       | { null, "a" }      | false
       | " " (半角スペース) | false
       | " "(全角スペース) | false
       
      Parameters:
      strings - 文字列配列
      Returns:
      全要素がnullまたは空文字の時、true
      See Also:
    • isNullOrEmpty

      @Published public static boolean isNullOrEmpty(Collection<String> strings)
      nullまたは空文字列判定を行う。

      与えられたコレクション内の要素全てがnullまたは空文字であればtrueを返却する。

       |引数                | 戻り値
       +--------------------+--------
       | null               | true
       | {}                 | true
       | {"", null}         | true
       | { null, "a" }      | false
       | " " (半角スペース) | false
       | " "(全角スペース) | false
       
      Parameters:
      strings - 文字列を格納したコレクション
      Returns:
      全要素がnullまたは空文字の時、true
      See Also:
    • hasValue

      @Published public static boolean hasValue(String string)
      Stringインスタンスが何らかの文字を含んでいるか判定する。

      isNullOrEmpty(String)と逆の真偽値を返却する。 否定演算子を使用することで可読性が劣る場合は本メソッドを使用すると良い。
      例を以下に示す。

       private String something;
      
       public void hasSomething() {
           return (!StringUtil.isNullOrEmpty(this.something)) {
       }
       
      以下のように書き換えることで、単純に読み下すことができる。
       public void hasSomething() {
           return StringUtil.hasValue(this.something);
       }
       
      Parameters:
      string - 文字列
      Returns:
      なんらかの文字が含まれている場合はtrue
      See Also:
    • hasValue

      @Published public static boolean hasValue(String... strings)
      文字列配列が何らかの文字列を含んでいるか判定する。

      isNullOrEmpty(String...)と逆の真偽値を返却する。 否定演算子を使用することで可読性が劣る場合は本メソッドを使用すると良い。

      Parameters:
      strings - 調査対象となる文字列配列
      Returns:
      何らかの文字列を含む場合、true
      See Also:
    • hasValue

      @Published public static boolean hasValue(Collection<String> strings)
      コレクションが何らかの文字列を含んでいるか判定する。

      isNullOrEmpty(Collection)と逆の真偽値を返却する。 否定演算子を使用することで可読性が劣る場合は本メソッドを使用すると良い。

      Parameters:
      strings - 調査対象となるコレクション
      Returns:
      何らかの文字列を含む場合、true
      See Also:
    • toString

      public static String toString(byte[] bytes, Charset charset)
      指定された文字セットでバイト配列をデコードする。

      JDK1.6以上を使用する場合は、java.lang.String(byte[], Charset)を使用すること。
      bytesnullだった場合、nullを返す。

      Parameters:
      bytes - バイト配列
      charset - 文字セット
      Returns:
      文字列
    • toString

      public static String toString(Object value)
      指定された値を文字列に変換する。

      指定された値がBigDecimalの場合には、 BigDecimal.toPlainString()を使用して文字列に変換する。 それ以外のオブジェクトの場合には、toString()により文字列化を行う。

      Parameters:
      value - 文字列に変換する値
      Returns:
      文字列に変換した値
    • getBytes

      @Published(tag="architect") public static byte[] getBytes(String string, Charset charset)
      指定された文字セットで文字列をエンコードする。

      JDK1.6以上を使用する場合は、java.lang.String#getBytes(Charset)を使用すること。
      stringnullだった場合、nullを返す。 stringが空文字だった場合、空のバイト配列を返す。

      Parameters:
      string - 文字列
      charset - 文字セット
      Returns:
      バイト配列
    • repeat

      @Published(tag="architect") public static String repeat(Object repeated, int times)
      文字列を繰り返す。

      引数が文字列でない場合は、String.valueOf(Object)された文字列が繰り返される。

      Parameters:
      repeated - 繰り返し文字列(null不可)
      times - 繰り返し回数(0以上)
      Returns:
      文字列
    • insert

      @Published(tag="architect") public static String insert(String target, String delimiter, int... intervals)
      区切り文字を文字列先頭から挿入する。

      例:

       StringUtil.insert("あいうえお", ",", 1, 1, 1); //-->あ,い,う,えお
       
      Parameters:
      target - 対象文字列(null不可)
      delimiter - 区切り文字(null不可)
      intervals - 挿入間隔(null不可・0不可)
      Returns:
      区切り文字挿入後の文字列
    • insertFromRight

      @Published(tag="architect") public static String insertFromRight(String target, String delimiter, int... intervals)
      区切り文字を右側から挿入する。

      例:

       StringUtil.insertFromRight("あいうえお", ",", 1, 1, 1); //-->あい,う,え,お
       
      Parameters:
      target - 対象文字列(null不可)
      delimiter - 区切り文字(null不可)
      intervals - 文字列後ろからの挿入間隔(null不可・0不可)
      Returns:
      区切り文字挿入後の文字列
    • insertRepeatedly

      @Published(tag="architect") public static String insertRepeatedly(String target, String delimiter, int interval)
      区切り文字を等間隔で挿入する。

      例:

       StringUtil.insertRepeatedly("あいうえお", ",", 1) //-->あ,い,う,え,お
       
      Parameters:
      target - 対象文字列(null不可)
      delimiter - 区切り文字(null不可)
      interval - 間隔(0不可)
      Returns:
      区切り文字挿入後の文字列
    • insertRepeatedlyFromRight

      @Published(tag="architect") public static String insertRepeatedlyFromRight(String target, String delimiter, int interval)
      区切り文字を右側から等間隔で挿入する。

      例:

       StringUtil.insertRepeatedlyFromRight("あいうえお", ",", 1) //-->あ,い,う,え,お
       
      Parameters:
      target - 対象文字列
      delimiter - 区切り文字
      interval - 間隔(0不可)
      Returns:
      区切り文字挿入後の文字列
    • chomp

      @Published public static String chomp(String target, String end)
      行末の文字列を切り落とす。
      Parameters:
      target - 文字列(null不可)
      end - 取り除く文字列(null不可)
      Returns:
      行末を取り除いた文字列
    • merge

      public static String[] merge(String[]... arrays)
      文字列配列を連結する。
      Parameters:
      arrays - 配列(null不可)
      Returns:
      連結後の配列
    • toArray

      public static String[] toArray(Collection<String> collection)
      コレクションを配列に変換する。
      Parameters:
      collection - 変換対象のコレクション(null不可)
      Returns:
      変換後の配列
    • lowerAndTrimUnderScore

      public static String lowerAndTrimUnderScore(String value)
      大文字を小文字にし、アンダースコアを削除する。

      Parameters:
      value - 変換対象の文字列(null不可)
      Returns:
      変換後の文字列
    • nullToEmpty

      @Published public static String nullToEmpty(String value)
      引数で渡された値がnullの場合、空文字を返却する。
      そうでない場合は、引数をそのまま返却する。
       
       StringUtil.nullToEmpty(null);   //--> ""
       StringUtil.nullToEmpty("");     //--> ""
       StringUtil.nullToEmpty("hoge"); //--> "hoge"
       
       
      Parameters:
      value - 変換対象の値
      Returns:
      変換後の値
    • join

      @Published public static String join(String separator, List<String> params)
      複数の文字列をセパレータを挟んで結合する。
      Parameters:
      separator - セパレータ
      params - 結合する文字列
      Returns:
      セパレータで結合した文字列
    • join

      @Published public static String join(String separator, List<String> params, String nullToString)
      複数の文字列をセパレータを挟んで結合する。
      Parameters:
      separator - セパレータ
      params - 結合する文字列
      nullToString - 結合する文字列がnullの場合に使用する文字列
      Returns:
      セパレータで結合した文字列
    • split

      @Published public static List<String> split(String str, String separator)
      文字列をセパレータで分割する。
      Parameters:
      str - 分割対象文字列
      separator - セパレータ
      Returns:
      分割された文字列
    • split

      @Published public static List<String> split(String str, String separator, boolean trim)
      文字列をセパレータで分割する。
      Parameters:
      str - 文字列
      separator - セパレータ
      trim - 分割後の文字列をトリムする場合、true
      Returns:
      分割された文字列