org.opengion.fukurou.util

## クラス StringUtil

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

-     public final class StringUtil
      extends Object

       StringUtil.java は、共通的に使用される String関連メソッドを集約した、クラスです。

  機能分類
    ユーティリティ
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### メソッドのサマリー

    すべてのメソッド staticメソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `static String` | `array2csv(String[] array)` String型の配列から、カンマ(,)で連結されたString を作成します。
    `static String` | `array2line(String[] array, String separator)` String型の配列から、セパレーターで連結されたString を作成します。
    `static String` | `array2line(String[] array, String separator, int start)` String型の配列から、セパレーターで連結されたString を作成します。
    `static String` | `caseReplace(String target, String caseStr, boolean ignoreCase)` 引数の AA:01 BB:02 CC:03 … 形式の、元値:新値のｽﾍﾟｰｽ区切り文字列を元に、 元値を新値に置き換えます。
    `static CharSequence` | `coalesce(CharSequence[] strs)` 最初の null(または、ゼロ文字列) 以外の値を返します。
    `static String` | `code39(String value, boolean checkDigit)` CODE39 の 文字列を作成します。
    `static boolean` | `contains(String key, String[] vals)` キーワードに対して、可変長引数の文字列が、含まれているかどうかを判定します。
    `static int` | `countChar(String value, char ch)` 文字列に含まれる、特定の文字の個数をカウントして返します。
    `static ConcurrentMap` | `cssParse(String cssText)` 簡易CSS形式のフォーマットを、Mapにセットします。
    `static String[]` | `csv2Array(String csvData)` カンマ(,)で連結された String を、配列に分解して、その値を返します。
    `static String[]` | `csv2Array(String csvData, char separator)` 区切り文字で連結された String を、配列に分解して、その値を返します。
    `static String[]` | `csv2Array(String csvData, char separator, int len)` 区切り文字で連結された String を、配列に分解して、その値を返します。
    `static Integer[]` | `csv2ArrayExt(String csvData, int maxNo)` カンマ(,)、ハイフン(-)で連結された String を、配列に分解して、その値を返す処理のスペシャル版です。
    `static String[]` | `csv2ArrayOnly(String csvData)` 区切り文字で連結された String を、配列に分解して、その値を返します。
    `static String` | `csvOutQuote(String str)` 文字列の前後のダブルクオートを取り外します。
    `static String` | `cut(String org, int cutBytes)` 引数から指定文字の分のバイト数で切った文字列を返します。
    `static String` | `cut(String org, int cutBytes, String enc)` 引数から指定文字の分のバイト数で切った文字列を返します。
    `static String` | `deleteChar(String value, char ch)` 所定のキャラクタコードを取り除いた文字列を作成します。
    `static String` | `deleteWhitespace(String data)` 引数から空白文字を削除して返します。
    `static Object[]` | `enume2Array(Enumeration enume)` Enumerationから、オブジェクト配列データを返します。
    `static Object[]` | `enume2Array(Enumeration enume, Object[] objs)` Enumerationから、オブジェクト配列データを返します。
    `static String` | `getReplaceEscape(String value)` HTML のエスケープ記号(&#xZZZZ;)をUnicode文字列に戻します。
    `static String` | `getUnicodeEscape(CharSequence value)` Unicode文字列の値を HTML のエスケープ記号(&#xZZZZ;)に変換します。
    `static String` | `htmlFilter(String input)` HTML上のエスケープ文字を変換します。
    `static String` | `htmlFilter(String input, boolean flag)` HTML上のエスケープ文字を変換します。
    `static String` | `intFill(int num, int su_fill)` 整数のフォーム( 12 で、整数部 １２桁を表す)に合った新しい文字列を作り、それを返します。
    `static String` | `intFill(String str, int su_fill)` 整数のフォーム( 12 で、整数部 １２桁を表す)に合った新しい文字列を作り、それを返します。
    `static boolean` | `isNull(CharSequence inStr)` 引数 inStr が、null または、ゼロ文字列、またはすべて空白文字の場合は､true を返します。
    `static String` | `iterator2line(Iterator ite, String separator)` Iteratorから、セパレーターで連結されたString を作成します。
    `static String` | `join(String delimiter, CharSequence[] vals)` 連結文字列を、使用して、可変長引数のCharSequenceを連結して返します。
    `static String` | `jsonFilter(String input)` JSON形式で出力する場合のためのエスケープ処理です。
    `static String` | `lTrim0(String inStr)` 文字列の前方のゼロ(０)を削除します。
    `static byte[]` | `makeByte(String value, String encode)` 指定の文字列をバイトコードに変換します。
    `static String` | `makeString(byte[] byteValue, int start, int length, String encode)` 内部で使われる byte[] から String 生成 メソッド。
    `static Object` | `newInstance(String cls)` 識別id に応じた オブジェクトを作成します。
    `static Object` | `newInstance(String cls, ClassLoader loader)` 指定されたクラスローダを使って、識別id に応じた オブジェクトを作成します。
    `static String` | `numberFormat(String inStr, int minFraction)` 浮動小数点数について、カンマ編集を行います。
    `static boolean` | `nval(String inStr, boolean def)` 引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static int` | `nval(String inStr, int def)` 引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static long` | `nval(String inStr, long def)` 引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static String` | `nval(String inStr, String def)` 引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static String` | `nval2(String inStr, String def)` 引数 inStr が、null、"_"、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static String` | `nval2(String inStr, String def, String def2)` 引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
    `static String` | `nvalAdd(CharSequence[] strs)` 指定のCharSequence同士を連結させます。
    `static double` | `parseDouble(String value)` 文字列をdoubleに変換します。
    `static String` | `quoteFilter(String input)` JavaScript 等の引数でのクオート文字をASCII変換します。
    `static String` | `realFill(String str, double su_fill)` 小数点のフォームに合った新しい文字列を作り、文字列を返します。
    `static String` | `replace(String target, String from, String to)` ストリングの部分文字列を,別の文字列に置換えたストリングを返します。
    `static String` | `rTrim(String str)` 文字列の後ろのスペースを削除します。
    `static String[]` | `rTrims(String[] str)` 文字列配列の各要素の後ろのスペースを削除します。
    `static String` | `spanCut(String data)` 引数からspanタグを取り除いて返します。
    `static boolean` | `startsChar(CharSequence data, char ch)` 引数の文字列が、引数の char で始まるかどうか判定します[始まる場合は、true]。
    `static String` | `stringFill(String str, int su_fill, String encode)` 半角スペースで固定長(半角換算の数)に変換した文字列を返します。
    `static String` | `stringKFill(String str, int su_fill, String encode)` 全角スペースで固定長(半角換算の数)に変換した文字列を返します。
    `static String` | `stringXFill(String str, int su_fill)` 半角スペースで固定長(半角換算の数)に変換した文字列を返します。
    `static String` | `tagCut(String data)` 引数からタグを取り除いて返します。
    `static String` | `toNumber(String str)` 文字列の後ろから、" .0" の文字を削除した数字型文字列を返します。
    `static String` | `urlAppend(CharSequence url1, CharSequence[] urls)` 指定のURL文字列同士を連結させます。
    `static String` | `urlDecode(String value)` UTF-8 でURLエンコードされた文字列をデコードします。
    `static String` | `urlEncode(String value)` UTF-8 で、URLエンコードを行います。
    `static String` | `urlEncode2(String value)` UTF-8 で、ASCII以外の文字の、URLエンコードします。
    `static String` | `valueOf(Object obj)` Object 引数の文字列表現を返します。
    `static String` | `yenN2br(String input)` 「\n」という文字列を、BRタグに変換します。

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

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

- - ### メソッドの詳細

    - #### urlEncode

          public static String urlEncode(String value)

      UTF-8 で、URLエンコードを行います。 このメソッドは、JDK1.4 以上でないと使用できません。
      パラメータ:
        `value` - エンコードする文字列
      戻り値:
        指定の文字コードでＵＲＬエンコードされた文字列
      関連項目:
        `urlEncode2( String )`
      このメソッドは、nullを返しません

    - #### urlEncode2

          public static String urlEncode2(String value)

      UTF-8 で、ASCII以外の文字の、URLエンコードします。 00 ～ 7F までのコードは、変換しません。 これは、日本語ファイル名の直リンクなど、URLエンコードが必要ですが、 http:// などのURL の場合は、':' , '/' は、エンコードしたくありません。 また、openGion では、[カラム] などの特殊な変数を渡して、処理させているので それらのキーワードも変換してほしくありません。 ただし、"%" と、";" は、変換します。
      パラメータ:
        `value` - エンコードする文字列
      戻り値:
        指定の文字コードでＵＲＬエンコードされた文字列(ASCII は省く)
      関連項目:
        `urlEncode( String )`
      変更履歴:

        6.2.0.1 (2015/03/06) ASCII以外の文字の、URLエンコードを行う。

      このメソッドは、nullを返しません

    - #### urlDecode

          public static String urlDecode(String value)

      UTF-8 でURLエンコードされた文字列をデコードします。 このメソッドは、JDK1.4 以上でないと使用できません。
      パラメータ:
        `value` - デコードする文字列
      戻り値:
        デコードされた文字列
      変更履歴:

        5.4.5.0 追加

    - #### rTrim

          public static String rTrim(String str)

      文字列の後ろのスペースを削除します。 String クラスの trim()メソッドは、文字列の両方のスペースを削除しますが、 この rTrim( String ) は、後ろの半角スペースのみ、詰めます。 注意：' ' (スペース文字) より小さい文字を切り取ります。
      パラメータ:
        `str` - 元の文字列
      戻り値:
        後ろの半角スペースを詰めた、新しい文字列

    - #### toNumber

          public static String toNumber(String str)

      文字列の後ろから、" .0" の文字を削除した数字型文字列を返します。 数字型文字列は、入力文字列の後ろの スペース、小数点、ゼロを削除します。 また、先頭が、"." で始まる場合は、"0" を追加します。 例: "123.00" ⇒ "123" , ".123" ⇒ "0.123"
      パラメータ:
        `str` - 元の文字列
      戻り値:
        数字文字列化された、新しい文字列
      変更履歴:

        3.8.8.1 (2007/01/10) 新規作成

    - #### lTrim0

          public static String lTrim0(String inStr)

      文字列の前方のゼロ(０)を削除します。 先頭の０を削除するまえに、trim して、スペースを削除しておきます。 すべてがゼロ(０)の場合は、"0" を返します。 小数点( 0.01 など )の場合は、先頭の 0 がすべて消えるとまずいので、 "0." 部分は、残します。
      パラメータ:
        `inStr` - 元の文字列
      戻り値:
        前方のゼロ(０)を削除した、新しい文字列
      変更履歴:

        3.5.4.5 (2004/01/23) 新規追加

    - #### rTrims

          public static String[] rTrims(String[] str)

      文字列配列の各要素の後ろのスペースを削除します。 個々の配列要素に対して、rTrim( String str ) を適用します。 元の文字列配列に直接作用するのではなく、新しい文字列配列に 結果をコピーして返します。 ただし、元の文字列配列が、null か、length == 0 の場合は、 元の文字列配列(アドレス)を返します。 注意：' ' (スペース文字) より小さい文字を切り取ります。
      パラメータ:
        `str` - 元の文字列配列(可変長引数)
      戻り値:
        後ろの半角スペースを詰めた、新しい文字列配列

    - #### csvOutQuote

          public static String csvOutQuote(String str)

      文字列の前後のダブルクオートを取り外します。 前後にダブルクオートが入っていなければ、そのままの文字列を返します。 前後に入っていない(片方のみなど)場合も、そのままの文字列を返します。 ※ 先頭に、'0 が含まれる場合は、カンマを削除します。 従来は、ダブルクオートしてから、rTrim してましたが、trim してから、 ダブルクオート外しを行います。
      パラメータ:
        `str` - 元の文字列
      戻り値:
        ダブルクオートを取り外した新しい文字列
      変更履歴:

        6.2.1.0 (2015/03/13) 先頭に、'0 が含まれる場合は、カンマを削除

    - #### makeString

          public static String makeString(byte[] byteValue,
                                          int start,
                                          int length,
                                          String encode)

      内部で使われる byte[] から String 生成 メソッド。
      パラメータ:
        `byteValue` - 変換するバイト列
        `start` - 変換開始アドレス
        `length` - 変換バイト数
        `encode` - 変換する文字エンコード
      戻り値:
        変換後文字列

    - #### makeByte

          public static byte[] makeByte(String value,
                                        String encode)

      指定の文字列をバイトコードに変換します。 引数の文字列が null の場合は、return は、byte[0] を返します。
      パラメータ:
        `value` - 変換するストリング値
        `encode` - 変換する文字エンコード
      戻り値:
        変換後文字列

    - #### stringXFill

          public static String stringXFill(String str,
                                           int su_fill)

      半角スペースで固定長(半角換算の数)に変換した文字列を返します。 半角スペース埋めは、文字が半角、全角混在でもかまいません。 内部にセットした文字列は、変化しません。
      パラメータ:
        `str` - Fill埋めする文字列
        `su_fill` - Fill埋めする文字列の長さ。(半角換算の数)
      戻り値:
        Fill埋めした新しいStringを返す。
      このメソッドは、nullを返しません

    - #### stringFill

          public static String stringFill(String str,
                                          int su_fill,
                                          String encode)

      半角スペースで固定長(半角換算の数)に変換した文字列を返します。 半角スペース埋めは、文字が半角、全角混在でもかまいません。 内部にセットした文字列は、変化しません。
      パラメータ:
        `str` - Fill埋めする文字列
        `su_fill` - Fill埋めする文字列の長さ。(半角換算の数)
        `encode` - Fill埋めする文字列の文字エンコード
      戻り値:
        Fill埋めした新しいStringを返す。
      変更履歴:

        6.3.6.0 (2015/08/16) System.arraycopy が使える箇所は、置き換えます。

    - #### intFill

          public static String intFill(String str,
                                       int su_fill)

      整数のフォーム( 12 で、整数部 １２桁を表す)に合った新しい文字列を作り、それを返します。 実行できるのは、整数の String に対してのみです。 内部にセットした文字列は、変化しません。 桁数がオーバーする場合は、RuntimeException を throw します。 String str = StringUtil.intFill( "123",10 ); 実行結果："0000000123"
      パラメータ:
        `str` - 整数の String
        `su_fill` - フォームを表す正の数字 ( 12 で、整数部 １２桁を表す)
      戻り値:
        整数のフォームに合った文字列
      例外:
        `RuntimeException` - su_fill が、負の数か、元の文字数がフォームより長い場合、エラー
      関連項目:
        `intFill( int ,int )`
      このメソッドは、nullを返しません

    - #### intFill

          public static String intFill(int num,
                                       int su_fill)

      整数のフォーム( 12 で、整数部 １２桁を表す)に合った新しい文字列を作り、それを返します。 実行できるのは、正の整数に対してのみです。 桁数がオーバーする場合は、オーバーしたまま返します。 String str = StringUtil.intFill( 123,10 ); 実行結果："0000000123"
      パラメータ:
        `num` - 正の整数
        `su_fill` - フォームを表す数字 ( 12 で、整数部 １２桁を表す)
      戻り値:
        整数のフォームに合った文字列
      例外:
        `RuntimeException` - su_fill または、num が、負の数の場合、エラー
      関連項目:
        `intFill( String ,int )`
      変更履歴:

        6.0.2.4 (2014/10/17) 新規追加

    - #### stringKFill

          public static String stringKFill(String str,
                                           int su_fill,
                                           String encode)

      全角スペースで固定長(半角換算の数)に変換した文字列を返します。
      パラメータ:
        `str` - Fill埋めする文字列
        `su_fill` - Fill埋めする文字列の長さ。(半角換算の数)
        `encode` - Fill埋めする文字列の文字エンコード
      戻り値:
        全角スペースでFill埋めした新しいStringを返す。

    - #### realFill

          public static String realFill(String str,
                                        double su_fill)

      小数点のフォームに合った新しい文字列を作り、文字列を返します。 現在は、小数点が頭に付いたり、最後に付く場合の対応はしていません。 フォームは、12.4 で、 000000000010.1000 という形で、ピリオドを含みます。 // 半角 整数部 10 桁 小数部 ５桁で固定長の文字を得る。 String str = StringUtil.realFill( "123.45" ,10.5 ) ; 実行結果：0000000123.45000
      パラメータ:
        `str` - 整数の String
        `su_fill` - フォームを表す実数 ( 12.4 で、整数部 １２桁、小数部 ４桁 計１７桁 )
      戻り値:
        value 小数点のフォーム文字列
      このメソッドは、nullを返しません

    - #### replace

          public static String replace(String target,
                                       String from,
                                       String to)

      ストリングの部分文字列を,別の文字列に置換えたストリングを返します。 例えば,リターンコードを< br />に置換えて,画面上に改行表示させるが可能です。
      パラメータ:
        `target` - 元の文字列
        `from` - 置換元部分文字列
        `to` - 置換先部分文字列
      戻り値:
        置換えた文字列
      変更履歴:

        5.0.0.1 (2009/08/15) 不要なオブジェクトの生成を抑制する。

    - #### caseReplace

          public static String caseReplace(String target,
                                           String caseStr,
                                           boolean ignoreCase)

      引数の AA:01 BB:02 CC:03 … 形式の、元値:新値のｽﾍﾟｰｽ区切り文字列を元に、 元値を新値に置き換えます。 これは、部分置換ではなく、完全一致で処理します。 caseStr が null や、マッチしなかった場合は、元の値を返します。 その場合、ignoreCase=true としている場合は、元の文字列 も大文字に変換されて返されます。 ゼロ文字列を元値や新値で使用することは可能ですが、スペースを使用することはできません。
      パラメータ:
        `target` - 元の文字列
        `caseStr` - 置換リスト(AA:01 BB:02 CC:03 … 形式)。null の場合は、比較しない。
        `ignoreCase` - true:大文字として比較 / false:そのまま比較
      戻り値:
        元の文字列を置き換えた結果。置換リストに存在しなければ、元の文字列を返す。
      変更履歴:

        5.7.2.3 (2014/01/31) 新規追加

    - #### array2csv

          public static String array2csv(String[] array)

      String型の配列から、カンマ(,)で連結されたString を作成します。 これは，配列を表示用に変換する為のものです。 array2line( array, ",", 0 ); と同等です。
      パラメータ:
        `array` - 元の文字列配列(可変長引数)
      戻り値:
        一列に変換した文字列(引数がnullの場合は、長さ０の文字列を返す)
      このメソッドは、nullを返しません

    - #### array2line

          public static String array2line(String[] array,
                                          String separator)

      String型の配列から、セパレーターで連結されたString を作成します。 これは，配列を表示用に変換する為のものです。
      パラメータ:
        `array` - 元の文字列配列
        `separator` - 区切り記号
      戻り値:
        一列に変換した文字列(引数がnullの場合は、長さ０の文字列を返す)
      このメソッドは、nullを返しません

    - #### array2line

          public static String array2line(String[] array,
                                          String separator,
                                          int start)

      String型の配列から、セパレーターで連結されたString を作成します。 これは，配列を表示用に変換する為のものです。
      パラメータ:
        `array` - 元の文字列配列
        `separator` - 区切り記号
        `start` - 配列の連結開始アドレス
      戻り値:
        一列に変換した文字列(引数がnullの場合は、長さ０の文字列を返す)
      このメソッドは、nullを返しません

    - #### enume2Array

          public static Object[] enume2Array(Enumeration enume)

      Enumerationから、オブジェクト配列データを返します。 これは，Enumerationを表示用に変換する為のものです。
      パラメータ:
        `enume` - 元のEnumeration
      戻り値:
        オブジェクト配列
      このメソッドは、nullを返しません

    - #### enume2Array

          public static Object[] enume2Array(Enumeration enume,
                                             Object[] objs)

      Enumerationから、オブジェクト配列データを返します。 これは，Enumerationを表示用に変換する為のものです。
      パラメータ:
        `enume` - 元のEnumeration
        `objs` - - 配列が十分な大きさを持つ場合は、Vector の要素が格納される配列。 そうでない場合は、要素を格納するために同じ実行時の型の新しい配列が割り当てられる
      戻り値:
        オブジェクト配列

    - #### iterator2line

          public static String iterator2line(Iterator ite,
                                             String separator)

      Iteratorから、セパレーターで連結されたString を作成します。 これは，Enumerationを表示用に変換する為のものです。
      パラメータ:
        `ite` - 元のIterator
        `separator` - 区切り記号
      戻り値:
        一列に変換した文字列
      このメソッドは、nullを返しません

    - #### csv2Array

          public static String[] csv2Array(String csvData)

      カンマ(,)で連結された String を、配列に分解して、その値を返します。 これは，たとえば、AAA,BBB,CCC などのリソースデータを受けてから配列に入れ直して、 メニューなりリストを作成するのに便利です。 要素が空の場合は、必ずカンマの間にスペースを入れて記述してください。 分割後の文字列の前後のスペースは、削除されます。
      パラメータ:
        `csvData` - 元のデータ
      戻り値:
        文字列配列(引数がnull、ゼロ文字列の場合は、サイズ0の配列を返す)
      このメソッドは、nullを返しません

    - #### csv2Array

          public static String[] csv2Array(String csvData,
                                           char separator)

      区切り文字で連結された String を、配列に分解して、その値を返します。 これは，たとえば、AAA,BBB,CCC などのリソースデータを受けてから配列に入れ直して、 メニューなりリストを作成するのに便利です。 連続した区切り文字は、１文字に分割します。 分割後の文字列の前後のスペースは、削除されます。
      パラメータ:
        `csvData` - 元のデータ
        `separator` - 区切り文字
      戻り値:
        文字列配列(引数がnull、ゼロ文字列の場合は、サイズ0の配列を返す)
      このメソッドは、nullを返しません

    - #### csv2Array

          public static String[] csv2Array(String csvData,
                                           char separator,
                                           int len)

      区切り文字で連結された String を、配列に分解して、その値を返します。 これは，たとえば、AAA,BBB,CCC などのリソースデータを受けてから配列に入れ直して、 メニューなりリストを作成するのに便利です。 連続した区切り文字は、１文字に分割します。 分割後の文字列の前後のスペースは、削除されます。 第３の引数は、リターンする配列の個数を指定します。ただし、第一引数がNULLや、ゼロ文字列 などの不正な情報の場合は、通常と同じく 長さゼロの配列を返します。 len=0 を指定すると分解したデータの個数分の配列を作成します。指定の長さが短い場合は、 そこまで分のみ取り込みます。指定の長さが長い場合は、余分に配列を作成します。 セットされる値は、"" です。
      パラメータ:
        `csvData` - 元のデータ
        `separator` - 区切り文字
        `len` - 指定の長さの配列で返します。
      戻り値:
        文字列配列(引数がnull、ゼロ文字列の場合は、サイズ0の配列を返す)
      変更履歴:

        3.8.5.1 (2006/05/08) 設定配列の数を指定できるように変更
        3.8.8.2 (2007/01/26) 分割後の値の前後のスペースは削除します。
        6.4.5.1 (2016/04/28) CSVTokenizer のインターフェースを、Iterator に変更。

      このメソッドは、nullを返しません

    - #### csv2ArrayOnly

          public static String[] csv2ArrayOnly(String csvData)

      区切り文字で連結された String を、配列に分解して、その値を返します。 これは，たとえば、AAA,BBB,CCC などのリソースデータを受けてから配列に入れ直して、 メニューなりリストを作成するのに便利です。 csv2Array と異なり、連続した区切り文字は、分割せずにトークンのみ切り出します。 トークンは、カンマ(,)のみで区切り、その後 trim() により 前後のスペースを削除します。
      パラメータ:
        `csvData` - 元のデータ
      戻り値:
        文字列配列
      このメソッドは、nullを返しません

    - #### csv2ArrayExt

          public static Integer[] csv2ArrayExt(String csvData,
                                               int maxNo)

      カンマ(,)、ハイフン(-)で連結された String を、配列に分解して、その値を返す処理のスペシャル版です。 0,1,3,5-8,10-* などの数字文字列から、必要な数字をピックアップした数字配列を返します。 引数の maxNo は、"*" が指定された場合の、最大の数値です。 よって、"*" は、単独(１文字)では、0-maxNo を表し、N-* では、N-maxNo を意味します。 CSV形式で指定される値は、基本的に数字で、重複(1,1,2,2)、逆転(3,2,1)で指定できます。 5-3 と指定した場合は、5,4,3 に分解されます。逆順に登録されます。 重複削除、昇順並べ替え等が、必要な場合は、取得後の配列を操作してください。
      パラメータ:
        `csvData` - 0,1,3,5-8,10-* などのCSV-ハイフン文字列
        `maxNo` - "*" が指定された場合の、最大数
      戻り値:
        数字配列(引数がnull、ゼロ文字列の場合は、サイズ0の配列を返す)
      変更履歴:

        5.5.7.2 (2012/10/09) 新規追加
        6.2.6.0 (2015/06/19) アルファベットの対応を廃止し、数字配列のみサポートします。

      このメソッドは、nullを返しません

    - #### valueOf

          public static String valueOf(Object obj)

      Object 引数の文字列表現を返します。 これは，String.valueOf とほぼ同じ動作をしますが、引数が null の場合に、 "null" という文字列を返すのではなく、なにもない文字列 "" を返します。
      パラメータ:
        `obj` - 文字列表現すべき元のオブジェクト
      戻り値:
        引数が null の場合は、"" に等しい文字列。そうでない場合は、obj.toString() の値
      このメソッドは、nullを返しません

    - #### htmlFilter

          public static String htmlFilter(String input)

      HTML上のエスケープ文字を変換します。 HTMLで表示する場合にきちんとエスケープ文字に変換しておかないと Script を実行されたり、不要なHTMLコマンドを潜り込まされたりするため、 セキュリティーホールになる可能性があるので、注意してください。
      パラメータ:
        `input` - HTMLエスケープ前の文字列
      戻り値:
        エスケープ文字に変換後の文字列
      変更履歴:

        5.8.2.2 (2014/12/19) アポストロフィの対応
        6.2.2.3 (2015/04/10) htmlフィルターに、BR→改行処理機能を追加。互換性の為のメソッド。

      このメソッドは、nullを返しません

    - #### htmlFilter

          public static String htmlFilter(String input,
                                          boolean flag)

      HTML上のエスケープ文字を変換します。 HTMLで表示する場合にきちんとエスケープ文字に変換しておかないと Script を実行されたり、不要なHTMLコマンドを潜り込まされたりするため、 セキュリティーホールになる可能性があるので、注意してください。 引数のフラグは、BR→改行コード の変換処理を行うかどうかを指定します。 true が、変換処理を行うです。 titleなどのTips表示する場合、改行は、「\n(改行コード)」で行います。 (HTMLで取り扱うので、&#13;&#10; の方が良いかもしれない。 その場合は、エスケープ処理と順番を入れ替えないと、そのまま表示されてしまう。) 一方、タグ等で改行を行うには、<BR/> で改行を指定します。 改行については、「\n」文字列を指定する事で統一します。
      パラメータ:
        `input` - HTMLエスケープ前の文字列
        `flag` - [true:BR変換する/false:BR変換しない]
      戻り値:
        エスケープ文字に変換後の文字列
      変更履歴:

        5.8.2.2 (2014/12/19) アポストロフィの対応
        6.2.2.3 (2015/04/10) htmlフィルターに、BR→改行処理機能を追加。
        6.2.5.0 (2015/06/05) htmlフィルターで、BR→改行処理が、引数間違いの為うまくできていなかった。

      このメソッドは、nullを返しません

    - #### yenN2br

          public static String yenN2br(String input)

      「\n」という文字列を、BRタグに変換します。 titleなどのTips表示する場合、改行は、「\n」で行います。 一方、タグ等で改行を行うには、<BR/> で改行を指定します。 BRタグは、リソーステーブル等に書き込みにくい為、また、本当の改行コードも 書き込みにくい為、改行については、「\n」文字列を指定する事で対応できるように 統一します。
      パラメータ:
        `input` - BR,\n変換前の文字列
      戻り値:
        変換後の文字列
      変更履歴:

        6.2.2.3 (2015/04/10) 「\n」という文字列を、BRタグに変換する処理を追加

      このメソッドは、nullを返しません

    - #### quoteFilter

          public static String quoteFilter(String input)

      JavaScript 等の引数でのクオート文字をASCII変換します。 JavaScript の引数の値に、ダブルクオート(")、シングルクオート(')が 含まれると、文字列を表す為に前後に指定しているクオートと混乱し、 データを表現できないケースがあります。その場合には、クオート文字を ASCII文字に置き換える事で、指定の文字を渡すことが可能になります。 ここでは、引数文字列に、ダブルクオート(")、シングルクオート(')が、 含まれると、それぞれ、ASCII コード(￥ｘ２２、￥ｘ２７)に置き換えます。 なお、null は、ゼロ文字列に変換して返します。
      パラメータ:
        `input` - 入力文字列
      戻り値:
        クオート文字をASCII文字に置き換えた文字列
      このメソッドは、nullを返しません

    - #### jsonFilter

          public static String jsonFilter(String input)

      JSON形式で出力する場合のためのエスケープ処理です。
      パラメータ:
        `input` - XMLエスケープ前の文字列
      戻り値:
        エスケープ文字に変換後の文字列
      変更履歴:

        5.9.6.4(2016/03/25) 新規作成

    - #### deleteChar

          public static String deleteChar(String value,
                                          char ch)

      所定のキャラクタコードを取り除いた文字列を作成します。 実現したい機能は、String#replace( 'x','' ) 的な表現です。 つまり、指定のキャラクタを取り除きたいのですが、上記コマンドでは、 コンパイル時にエラーが発生します。 取り除きたいキャラクタコードが存在しない場合は、指定の文字列を そのまま返します。
      パラメータ:
        `value` - 処理対象の文字列
        `ch` - 取り除きたいキャラクタ
      戻り値:
        処理後の文字列

    - #### countChar

          public static int countChar(String value,
                                      char ch)

      文字列に含まれる、特定の文字の個数をカウントして返します。
      パラメータ:
        `value` - 処理対象の文字列
        `ch` - カウントする文字
      戻り値:
        カウント数
      変更履歴:

        5.2.0.0 (2010/09/01)

    - #### code39

          public static String code39(String value,
                                      boolean checkDigit)

      CODE39 の 文字列を作成します。 CODE39 は、『0～9, A～Z,-,・,　,$,/,+,%』のコードが使用できる バーコードの体系です。通常 * で始まり * で終了します。 また、チェックデジット に、モジュラス43 が使われます。 ここでは、指定の文字列の前後に、* を付与し、必要であれば チェックデジットも付与します。 指定の入力文字列には、* を付けないでください。
      パラメータ:
        `value` - 処理対象の文字列
        `checkDigit` - チェックデジットの付与(true:付ける/false:付けない)
      戻り値:
        処理後の文字列
      このメソッドは、nullを返しません

    - #### nval

          public static String nval(String inStr,
                                    String def)

      引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。 もちろん、inStr も def も null の場合は､null を返します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト文字列
      戻り値:
        ( in != null ) ? in : def ;

    - #### nval

          public static int nval(String inStr,
                                 int def)

      引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト数字
      戻り値:
        引数 inStr を変換した数字。変換できない場合は デフォルト値 def

    - #### nval

          public static long nval(String inStr,
                                  long def)

      引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト数字
      戻り値:
        引数 inStr を変換した数字。変換できない場合は デフォルト値 def

    - #### nval

          public static boolean nval(String inStr,
                                     boolean def)

      引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。 通常は、"true" または、 "TRUE" 文字列を、論理値の true に変換します。 ただし、文字列長が 1文字の場合のみ、"0" 以外を true に変換します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト論理値
      戻り値:
        引数 inStr を変換した論理値。変換できない場合は デフォルト値 def

    - #### nval2

          public static String nval2(String inStr,
                                     String def)

      引数 inStr が、null、"_"、ゼロ文字列の場合は､デフォルト値 def を返します。 さらに、メモリ領域を節約する為、intern() の結果を返します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト文字列
      戻り値:
        null、ゼロ文字列、"_"の場合は、デフォルト文字列を、そうでなければ、入力文字を返す。
      変更履歴:

        5.2.2.0 (2010/11/01) "_" の取り扱い変更

    - #### nval2

          public static String nval2(String inStr,
                                     String def,
                                     String def2)

      引数 inStr が、null または、ゼロ文字列の場合は､デフォルト値 def を返します。 ただし、NULL代替文字(_)は デフォルト値 def2 に置き換えます。 さらに、メモリ領域を節約する為、intern() の結果を返します。
      パラメータ:
        `inStr` - 基準となる文字列
        `def` - デフォルト文字列
        `def2` - NULL代替文字(_)の場合のデフォルト文字列
      戻り値:
        null、ゼロ文字列の場合は、def1文字列を、"_"の場合は、def2文字列を、そうでなければ、入力文字を返す。
      変更履歴:

        5.2.2.0 (2010/11/01) "_" の取り扱い変更

    - #### nvalAdd

          public static String nvalAdd(CharSequence[] strs)

      指定のCharSequence同士を連結させます。 CharSequenceが、 null の場合は、連結しません。 すべてが null の場合は、ゼロ文字列が返されます。
      パラメータ:
        `strs...` - 可変長CharSequence
      戻り値:
        null以外の文字列が連結された状態
      関連項目:
        `join( String,CharSequence... )`
      変更履歴:

        6.0.2.4 (2014/10/17) 新規追加
        6.4.5.0 (2016/04/08) 引数を可変長CharSequenceに変更

      このメソッドは、nullを返しません

    - #### coalesce

          public static CharSequence coalesce(CharSequence[] strs)

      最初の null(または、ゼロ文字列) 以外の値を返します。 nval の 変数が、無制限版です。 すべてが null(または、ゼロ文字列) の場合は、null が返されます。
      パラメータ:
        `strs...` - 可変長CharSequence
      戻り値:
        最初に現れた、null以外のCharSequence
      変更履歴:

        6.0.2.4 (2014/10/17) 新規追加
        6.4.5.0 (2016/04/08) 引数を可変長CharSequenceに変更

    - #### contains

          public static boolean contains(String key,
                                         String[] vals)

      キーワードに対して、可変長引数の文字列が、含まれているかどうかを判定します。 キーワードが、null でなく、比較先の文字列が、ひとつでも含まれると、true が返ります。 key != null && ( key.contains( val1 ) || key.contains( val2 ) ･･･ ) の結果と同じです。
      パラメータ:
        `key` - キーワード
        `vals...` - 比較先の可変長文字列(OR判定)
      戻り値:
        キーワード文字列の中に、比較先文字列がひとつでも含まれると、true
      変更履歴:

        6.4.4.2 (2016/04/01) contains 判定を行う新しいメソッドを新規追加します。

    - #### join

          public static String join(String delimiter,
                                    CharSequence[] vals)

      連結文字列を、使用して、可変長引数のCharSequenceを連結して返します。 連結文字列が、null の場合は、CharSequenceをそのまま連結していきます。 連結する文字列が null の場合は、連結しません。 連結文字列は、一番最後は出力されません。 処理できない場合は、長さゼロの文字列を返します。
      パラメータ:
        `delimiter` - 連結文字列
        `vals...` - 連結するCharSequence
      戻り値:
        連結された結果の文字列
      関連項目:
        `nvalAdd( CharSequence... )`
      変更履歴:

        6.4.4.2 (2016/04/01) join 処理を行う新しいメソッドを新規追加します。
        6.4.5.0 (2016/04/08) 引数を可変長CharSequenceに変更

      このメソッドは、nullを返しません

    - #### isNull

          public static boolean isNull(CharSequence inStr)

      引数 inStr が、null または、ゼロ文字列、またはすべて空白文字の場合は､true を返します。 それ以外は false を返します。 注意は、オールスペースやタブ文字、改行文字も true になります。
      パラメータ:
        `inStr` - 判定するCharSequence
      戻り値:
        NULL文字列関係の場合は、true を、そうでなければ、false を返す。
      変更履歴:

        6.4.5.0 (2016/04/08) 引数を可変長CharSequenceに変更

    - #### numberFormat

          public static String numberFormat(String inStr,
                                            int minFraction)

      浮動小数点数について、カンマ編集を行います。 このメソッドでは、1.23 E12 などの数字は扱いません。通常の 数字とピリオドで構成された文字列のみ、変換対象になります。 (ただし、不正な文字列を与えてもエラーチェックはしていません。) minFraction には、小数点部に与える固定値を指定します。入力文字列が その桁数より少ない場合は、０埋めします。 多い場合は、四捨五入します。 minFraction が 0 の場合は、小数点は付きません。 ".12" などの小数点は、必ず先頭に 0 が付きます。 入力文字列が null か、ゼロ文字列時は、そのまま入力データを返します。

                  DecimalFormat format = new DecimalFormat( "#,##0.00########" );
                  double dd = Double.parseDouble( val );
                  return format.format( dd );

      に対して、minFraction分の小数以下のゼロの指定と、inに ',' が 含まれた処理を追加した感じになります。
      パラメータ:
        `inStr` - 変換元の文字列
        `minFraction` - 変換時の小数点以下の固定桁数
      戻り値:
        カンマ編集後の数字型文字列
      変更履歴:

        4.0.0.0 (2007/10/26) 空白のトリム処理を追加
        6.0.4.0 (2014/11/28) 小数点指定が、0 の場合、小数点以下は表示しない
        6.2.0.0 (2015/02/27) 小数点指定の精度に合わせるのと、内部ロジック完全置換
        6.2.0.1 (2015/03/06) 互換性の関係で、nullかゼロ文字列の時は、そのまま、in を返す。
        6.3.6.1 (2015/08/28) throw new OgRuntimeException するのではなく、System.err.println する。
        6.3.8.5 (2015/10/16) ogErrMsgPrint 使用。
        6.4.2.0 (2016/01/29) ogErrMsgPrint メソッドを、ThrowUtil クラスに移動のため、修正

    - #### newInstance

          public static Object newInstance(String cls)

      識別id に応じた オブジェクトを作成します。 作成するには、デフォルトコンストラクターが必要です。
      パラメータ:
        `cls` - 作成するクラスのフルネーム
      戻り値:
        オブジェクト
      例外:
        `RuntimeException` - 何らかのエラーが発生した場合
      このメソッドは、nullを返しません

    - #### newInstance

          public static Object newInstance(String cls,
                                           ClassLoader loader)

      指定されたクラスローダを使って、識別id に応じた オブジェクトを作成します。 作成するには、デフォルトコンストラクターが必要です。 initialize パラメータは true 相当(それまでに初期化されていない場合だけ初期化)です。
      パラメータ:
        `cls` - 作成するクラスのフルネーム
        `loader` - 作成するクラスのクラスローダ
      戻り値:
        オブジェクト
      例外:
        `RuntimeException` - 何らかのエラーが発生した場合
      変更履歴:

        6.4.3.3 (2016/03/04) リフレクション系の例外の共通クラスに置き換えます。

      このメソッドは、nullを返しません

    - #### urlAppend

          public static String urlAppend(CharSequence url1,
                                         CharSequence[] urls)

      指定のURL文字列同士を連結させます。 そのとき、後方URLが、絶対パスの場合は、連結せず 後方URLを返します。 第２引数以降は、絶対パス判定をせず直前のURLの末尾判定のみで連結します。 絶対パスかどうかは、通常のファイル属性と同様に、先頭が、'/' (UNIX)または、 ２文字目が、":" (Windows)の場合、または、先頭が "\" (ネットワークパス)で 始まる場合で判断します。 連結時に、前方URLの末尾に "/" を付加します。 処理の互換性確保のため、第３引数の可変長引数を追加しています。
      パラメータ:
        `url1` - 先頭URLCharSequence
        `urls` - 後方URL可変長CharSequence(絶対パスの場合は、返り値)
      戻り値:
        URL文字列同士の連結結果 url1 + url2(url2が絶対パスの場合は、url2から連結開始)
      変更履歴:

        5.0.0.1 (2009/08/15) 不要なオブジェクトの生成を抑制する。
        5.6.5.2 (2013/06/21) 第３引数を可変長引数に変更
        6.4.5.0 (2016/04/08) 引数をCharSequenceに変更
        6.4.7.2 (2016/06/20) 絶対パスの判定を、可変長URLにも適用する。

      このメソッドは、nullを返しません

    - #### getUnicodeEscape

          public static String getUnicodeEscape(CharSequence value)

      Unicode文字列の値を HTML のエスケープ記号(&#xZZZZ;)に変換します。 SJIS(JA16SJIS) で作成されたデータベースに、(NVARCHAR2)を使用して中国語等を登録するのは 非常に複雑でかつ、リスクが大きい処理になります。 ORACLE殿でも、自信を持っては勧められない機能とのコメントを頂いています。 そこで、HTMLでのエスケープ文字を使用して、Unicodeを文字列化して登録する為の DBType として、新規に作成します。 ここでは、入力文字を、キャラクタ(char)型に分解し、(&#xZZZZ;)に変換していきます。 よって、通常に１文字(Shift-JISで２Byte,UTF-8で３Byte)が、８Byteになります。 この変換された文字列を、HTML上でそのまま取り出すと、元のUnicode文字に戻る為、 通常のShift-JISでは、扱えない文字(中国語など)でも表示可能になります。 ここでは、2バイト文字のみ、変換しています。
      パラメータ:
        `value` - 変換前のCharSequence
      戻り値:
        HTMLのエスケープ記号(&#xZZZZ;)
      変更履歴:

        6.4.5.0 (2016/04/08) 引数をCharSequenceに変更

      このメソッドは、nullを返しません

    - #### getReplaceEscape

          public static String getReplaceEscape(String value)

      HTML のエスケープ記号(&#xZZZZ;)をUnicode文字列に戻します。 HTMLでのエスケープ文字を使用して登録された文字を、Unicodeに戻します。 (&#xZZZZ;)の８Byteを、もとのキャラクタコードに戻し、合成します。 ここでは、通常の文字列に混在したエスケープ文字も戻せるようにします。
      パラメータ:
        `value` - HTMLのエスケープ記号(&#xZZZZ;)を含む文字列
      戻り値:
        通常のUnicode文字列
      変更履歴:

        5.9.5.3 (2016/02/26) 無限ループ対応

      このメソッドは、nullを返しません

    - #### parseDouble

          public static double parseDouble(String value)

      文字列をdoubleに変換します。 これは、Double.parseDouble( value ) と、ほぼ同じ動作を行います。 内部的には、引数の カンマ(,) を削除した文字列を、Double.parseDouble( value ) に渡します。 また、引数が、null,ゼロ文字列,'_' の時には、0.0 を返します。
      パラメータ:
        `value` - doubleに変換する元の文字列
      戻り値:
        変換後のdouble数値
      変更履歴:

        6.3.9.0 (2015/11/06) もう少し判りやすくする。(処理速度は落ちてます。)

    - #### spanCut

          public static String spanCut(String data)

      引数からspanタグを取り除いて返します。 引数が、<span ･･･>YYYY</span>形式の場合、YYYY のみ出力します。 この処理では、先頭にspan が一つだけある場合、削除します。 複数の span や、div などを削除する場合は、#tagCut(String) メソッドで処理します。
      パラメータ:
        `data` - 元のString文字列
      戻り値:
        spanタグが取り除かれた文字列(引数が null の場合は、そのまま null が返ります)
      関連項目:
        `tagCut(String)`
      変更履歴:

        4.3.4.3 (2008/12/22) TableWriterで利用していたものを移動

    - #### tagCut

          public static String tagCut(String data)

      引数からタグを取り除いて返します。 引数が、<xxxx ･･･>YYYY</xxxx>形式の場合、YYYY のみ出力します。 この処理では、すべてのタグを削除し、BODY部をつなげます。 <xxxx/> の様な、BODY要素を持たない場合は、ゼロ文字列になります。
      パラメータ:
        `data` - 元のString文字列
      戻り値:
        タグが取り除かれた文字列(引数が null の場合は、そのまま null が返ります)
      変更履歴:

        6.2.0.0 (2015/02/27) 引数からタグを削除し、BODY文字列を切り出します。

    - #### cssParse

          public static ConcurrentMap cssParse(String cssText)

      簡易CSS形式のフォーマットを、Mapにセットします。 簡易CSS形式とは、セレクタのない、{ プロパティ1 : 値1 ; ・・・ } 形式とします。 これを、プロパティ1 と 値1 のMap にセットする処理を行います。 コメントは、削除されます。また、同一プロパティが記述されている場合は、後処理を採用します。 // * なお、入力テキストが、null か、{…} が存在しない場合は、null を返します。 なお、入力テキストが、null か、{…} が存在しない場合は、空のMapを返します。
      パラメータ:
        `cssText` - 簡易CSS形式のフォーマット文字列
      戻り値:
        パース結果のMap(ConcurrentMap)
      変更履歴:

        5.6.5.2 (2013/06/21) 新規追加
        6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。
        6.4.3.3 (2016/03/04) 戻すMapが、not null制限つきであることを示すため、ConcurrentMap に置き換えます。

      このメソッドは、nullを返しません

    - #### deleteWhitespace

          public static String deleteWhitespace(String data)

      引数から空白文字を削除して返します。
      パラメータ:
        `data` - 元のString文字列
      戻り値:
        空白文字が取り除かれた文字列
      変更履歴:

        5.6.9.4 (2013/10/31) TableWriterで利用していたものを移動

    - #### startsChar

          public static boolean startsChar(CharSequence data,
                                           char ch)

      引数の文字列が、引数の char で始まるかどうか判定します[始まる場合は、true]。 これは、PMDで言う所の、String.startsWith can be rewritten using String.charAt(0) の書き換え処理に相当します。 boolean flag = data != null && data.startsWith( chStr ); 的な処理を、 boolean flag = data != null && data.length() > 0 && data.charAt(0) == ch; に書き換える代わりに、このメソッドを使用します。 内部ロジックは、上記の相当します。
      パラメータ:
        `data` - 引数のCharSequence
        `ch` - チェックするchar
      戻り値:
        引数文字列が、nullでなく、ゼロ文字列でなく、引数char で始まる場合は、true
      関連項目:
        `String.startsWith(String)`
      変更履歴:

        6.2.0.0 (2015/02/27) １文字 String.startsWith の String.charAt(0) 変換
        6.4.5.0 (2016/04/08) 引数をCharSequenceに変更

    - #### cut

          public static String cut(String org,
                                   int cutBytes,
                                   String enc)

      引数から指定文字の分のバイト数で切った文字列を返します。 文字列のバイト数は指定のエンコードでカウントします。 （文字の途中で切れる事はありません）
      パラメータ:
        `org` - 元のString文字列
        `cutBytes` - 切るバイト数
        `enc` - 文字列のエンコード
      戻り値:
        バイト数で切った文字列
      変更履歴:

        5.9.1.3 (2015/10/30) 新規作成
        6.4.2.0 (2016/01/29) StringUtil#ogStackTrace(Throwable) を、ThrowUtil##ogStackTrace(Throwable) に変更。

    - #### cut

          public static String cut(String org,
                                   int cutBytes)

      引数から指定文字の分のバイト数で切った文字列を返します。 バイト数のカウントはUTF-8として行います。
      パラメータ:
        `org` - 元のString文字列
        `cutBytes` - 切るバイト数
      戻り値:
        バイト数で切った文字列
      変更履歴:

        5.9.1.3 (2015/10/30) 新規作成

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.