パッケージ org.opengion.fukurou.fileexec

## クラス StringUtil

- java.lang.Object
- - org.opengion.fukurou.fileexec.StringUtil

-     public final class StringUtil
      extends Object

  StringUtilは、共通的に使用される文字列処理に関する、ユーティリティークラスです。
  変更履歴:
    7.0.0.0 (2017/07/07) 新規作成
  バージョン
    7.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK1.8,

- - ### フィールドの概要

    フィールド
    修飾子とタイプ | フィールド | 説明
    --- | --- | ---
    `static String` | `CR` | システム依存の改行記号(String)。

  - ### メソッドの概要

    すべてのメソッド staticメソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `static String` | `getTime​(String ymd, String hms)` | EUROMAPの日付、時間文字列から、openGion系日付時刻文字列を作成します。
    `static String` | `getTimeFormat()` | LOGファイルのフォーマットに対応した日付、時刻文字列を作成します。
    `static String` | `getTimeFormat​(long date, String format)` | 指定のフォーマットに対応した日付、時刻文字列を作成します。
    `static String` | `getTimeFormat​(String format)` | 指定のフォーマットに対応した日付、時刻文字列を作成します。
    `static String` | `keyAppend​(String defVal, String... keys)` | すべての引数をｽﾍﾟｰｽで連結してtrim()した文字列を返します。
    `static boolean` | `numEquals​(String val1, String val2)` | 数字型文字列の一致をチェックします。
    `static int` | `nval​(String val, int def)` | 指定の数値型文字列が nullか、ゼロ文字列 の場合は、２番目の初期値を返します。
    `static String` | `nval​(String val, String... def)` | 指定の文字列が nullか、ゼロ文字列 の場合は、２番目以降の引数から、null でない最初の値を返します。
    `static String` | `replaceText​(String orgTxt)` | 変数の置き換え処理を行います。
    `static String[]` | `split​(String line, char ch)` | 指定の文字列を、引数の文字で、前後に分割します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### フィールドの詳細

    - #### CR

          public static final String CR

      システム依存の改行記号(String)。

  - ### メソッドの詳細

    - #### nval

          public static String nval​(String val,
                                    String... def)

      指定の文字列が nullか、ゼロ文字列 の場合は、２番目以降の引数から、null でない最初の値を返します。 ２番目以降の引数には、ゼロ文字列の指定も可能です。
      パラメータ:
        `val` - 判定する文字列
        `def` - 初期値の可変長引数
      戻り値:
        指定の値で、最初にnullでない値。最後まで、無ければ、val を返します。

    - #### nval

          public static int nval​(String val,
                                 int def)

      指定の数値型文字列が nullか、ゼロ文字列 の場合は、２番目の初期値を返します。 そうでない場合は、指定の文字列を、Integer.parseInt( String ) した値を返します。
      パラメータ:
        `val` - 判定する数値型文字列
        `def` - 初期値の数値
      戻り値:
        指定の文字列が nullか、ゼロ文字列でない場合は、数値に変換し、そうでなければ、初期値の数値を返します。
      例外:
        `NumberFormatException` - 文字列が解析可能な整数型を含まない場合。

    - #### getTimeFormat

          public static String getTimeFormat()

      LOGファイルのフォーマットに対応した日付、時刻文字列を作成します。 yyyyMMddHHmmss 形式のフォーマットで、返します。
      戻り値:
        現在の日付、時刻文字列

    - #### getTimeFormat

          public static String getTimeFormat​(String format)

      指定のフォーマットに対応した日付、時刻文字列を作成します。 例えば、LOGフォーマットの場合は、yyyyMMdd HH:mm:ss 形式です。
      パラメータ:
        `format` - 日付、時刻文字列のフォーマット
      戻り値:
        指定のフォーマットに対応した現在の日付、時刻文字列

    - #### getTimeFormat

          public static String getTimeFormat​(long date,
                                             String format)

      指定のフォーマットに対応した日付、時刻文字列を作成します。 例えば、LOGフォーマットの場合は、yyyyMMdd HH:mm:ss 形式です。
      パラメータ:
        `date` - フォーマットする日付情報
        `format` - 日付、時刻文字列のフォーマット
      戻り値:
        指定のフォーマットに対応した指定の日付、時刻文字列

    - #### getTime

          public static String getTime​(String ymd,
                                       String hms)

      EUROMAPの日付、時間文字列から、openGion系日付時刻文字列を作成します。 日付は、yyyyMMdd 形式で、時間は、HH:mm:ss 形式を標準としますが、 数字以外の文字列を削除して、連結した文字列を作成します。 その場合、１４桁数字文字列 になります。 その形式に合わない場合は、現在時刻 を返します。 ただし、日付の整合性チェックは、行っていません。
      パラメータ:
        `ymd` - EUROMAPの日付(yyyyMMdd形式の８桁数字)
        `hms` - EUROMAPの時間(HH:mm:ss形式の８桁数字)
      戻り値:
        openGion系日付時刻文字列(yyyyMMddHHmmss形式の１４桁数字)
      変更履歴:
        7.0.5.1 (2019/09/27) 日付指定がない場合に、無条件に１秒待つ仕様を廃止。ロジックミス修正, 7.2.5.0 (2020/06/01) 日付と時間を分けて取得します。

    - #### keyAppend

          public static String keyAppend​(String defVal,
                                         String... keys)

      すべての引数をｽﾍﾟｰｽで連結してtrim()した文字列を返します。 各引数は、それぞれ、trim()した後、ｽﾍﾟｰｽで連結します。 ただし、引数が、nullの場合は、ゼロ文字列に変換します。 すべてを連結して、trim() した結果が、ゼロ文字列の場合は、defVal を返します。
      パラメータ:
        `defVal` - 結果が、ゼロ文字列の場合に返す文字列
        `keys` - 連結したいキーの可変長文字列配列
      戻り値:
        合成した文字列。
      変更履歴:
        7.2.5.0 (2020/06/01) 日付と時間を分けて取得します。

    - #### split

          public static String[] split​(String line,
                                       char ch)

      指定の文字列を、引数の文字で、前後に分割します。 キー=値 や、キー,値 などの文字列を分割して、キーと値の配列を返します。 １番目の配列[0] は、キー(chの左側)、２番目の配列[1] は、値(chの右側) です。 キーも値も、前後のスペースを削除:trim() します。 キー(１番目の配列[0])は、空文字列を許可しません。 // * 分割文字を含まない場合や、キーが、空文字列の場合は、null を返します。 分割文字を含まない場合や、キーが、空文字列の場合は、長さゼロの配列 を返します。 nullで無い場合は、配列は、必ず２個存在しそのどちらの値も、null を含みません。
      パラメータ:
        `line` - １行分の文字列
        `ch` - 分割する文字
      戻り値:
        キーと値の配列。無ければ、長さゼロの配列
      変更履歴:
        7.3.0.0 (2021/01/06) SpotBugs:null ではなく長さが0の配列を返すことを検討する
      このメソッドは、nullを返しません

    - #### numEquals

          public static boolean numEquals​(String val1,
                                          String val2)

      数字型文字列の一致をチェックします。 処理としては、数字型文字列以外を判定条件に入れても、同一文字列の場合は、 true になります。 ここでは、どちらかの文字列の末尾が、".0" などの場合に、同じかどうかを 数値に変換して、判定します。 どちらかが、null の場合は、必ず false になります。両方とも、null でも false です。
      パラメータ:
        `val1` - 判定用の引数１
        `val2` - 判定用の引数２
      戻り値:
        判定結果(一致する場合は、true)

    - #### replaceText

          public static String replaceText​(String orgTxt)

      変数の置き換え処理を行います。 これは、org.opengion.fukurou.util.StringUtil#replaceText( String ,String ,String ,UnaryOperator<String> ) の簡易版です。 これは、単純な変数ではなく、${env.XXX}または、{@ENV..XXX} の XXX を環境変数に置き換えたり、 {@DATE.XXXX} を、日付文字列に置き換えたりする場合に、使用できます。 fukurou.util.StringUtil#replaceText 版との違いは、1回のみの変換と、ENV と DATE を決め打ちで処理していることです。 fileexec パッケージに、util パッケージと同じクラス名のStringUtil を作ったのがそもそもの間違いで、 fileexec パッケージ単独で使用していたものを、統合するにあたり、統合しきれなかったメソッドが 悪さしています。
      パラメータ:
        `orgTxt` - 変換元の文字列
      戻り値:
        置換処理したテキスト
      変更履歴:
        7.2.5.0 (2020/06/01) 新規追加