パッケージ 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) 新規作成
導入されたバージョン:
  JDK1.8,

- ## フィールドの概要

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `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) 日付と時間を分けて取得します。, 7.4.1.0 (2021/04/23) １秒待つ仕様を復活。あくまで現在時刻を設定した場合のみ待ちます。

  - ### 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) 新規追加