jp.terasoluna.fw.util
クラス StringUtil

java.lang.Object
  上位を拡張 jp.terasoluna.fw.util.StringUtil

public class StringUtil
extends java.lang.Object

文字列操作を行うユーティリティクラス。

半角・全角変換、HTML特殊文字エスケープ、SQL文LIKE句 エスケープ等、文字列操作に必要な機能を提供する。


フィールドの概要
private static java.lang.String HANKAKU_HA_LIST
          半角カナリスト(ハ)行。
private static java.lang.String HANKAKU_KASATAHA_LIST
          半角カナリスト(カ、サ、タ、ハ)行とウ。
private static java.lang.String HANKAKU_LIST
          半角文字リスト。
static java.lang.String LIKE_ESC_CHAR
          LIKE述語のパターン文字列で用いるエスケープ文字。
static java.lang.String LINE_SEP
          実行環境のOSで用いられる改行コードを取得する。
private static java.lang.String ZENKAKU_GAZADABA_LIST
          全角カナリスト(ガ、ザ、ダ、バ)行とヴ。
private static java.lang.String ZENKAKU_KASATAHA_LIST
          全角カナリスト(カ、サ、タ、ハ)行とウ。
private static java.lang.String ZENKAKU_LIST
          全角文字リスト。
private static java.lang.String ZENKAKU_PA_LIST
          全角カナリスト(パ)行。
private static java.lang.Character ZENKAKU_WA_DAKUTEN
          全角カナ(ワ"[¥30f7])。
private static java.lang.Character ZENKAKU_WO_DAKUTEN
          全角カナ(ヲ"[¥30fa])。
 
コンストラクタの概要
StringUtil()
           
 
メソッドの概要
static java.lang.String capitalizeInitial(java.lang.String str)
          指定された文字列の頭文字を大文字にする。
static java.lang.String dump(java.util.Map<?,?> map)
          引数のマップのダンプを取得する。
static java.lang.String filter(java.lang.String str)
          HTMLメタ文字列変換。
static java.lang.String getArraysStr(java.lang.Object[] arrayObj)
          ダンプ対象の値オブジェクトが配列形式の場合、 配列要素でなくなるまで繰り返し値を取得する。
static int getByteLength(java.lang.String value, java.lang.String encoding)
          指定された文字列のバイト列長を取得する。
static java.lang.String getExtension(java.lang.String name)
          指定された文字列から末尾の拡張子を取得する。
private static java.lang.String getHankakuMoji(char c)
          全角文字を半角文字に変換する。
private static java.lang.String getZenkakuDakuMoji(char c)
          半角文字を全角文字に変換する。
private static java.lang.String getZenkakuHandakuMoji(char c)
          半角文字を全角文字に変換する。
private static java.lang.String getZenkakuKasatahaMoji(char c)
          半角文字を全角文字に変換する。
private static java.lang.String getZenkakuMoji(char c)
          半角文字を全角文字に変換する。
static java.lang.String hankakuToZenkaku(java.lang.String value)
          半角文字列を全角文字列に変換する。
static boolean isWhitespace(char c)
          指定された文字が半角スペースかどうかを判別する。
static boolean isZenHankakuSpace(char c)
          指定された文字が全角または半角スペースかどうかを判別する。
static java.lang.String ltrim(java.lang.String str)
          文字列の左側のホワイトスペースを削除する。
static java.lang.String ltrimZ(java.lang.String str)
          文字列の左側の全角および半角スペースを削除する。
static java.lang.String[] parseCSV(java.lang.String csvString)
          CSV形式の文字列を文字列の配列に変換する。
static java.lang.String[] parseCSV(java.lang.String csvString, java.lang.String escapeString)
          CSV形式の文字列を文字列の配列に変換する。
static java.lang.String rtrim(java.lang.String str)
          文字列の右側のホワイトスペースを削除する。
static java.lang.String rtrimZ(java.lang.String str)
          文字列の右側の全角および半角スペースを削除する。
static java.lang.String toHexString(byte[] byteArray, java.lang.String delim)
          バイト配列を16進文字列に変換する。
static java.lang.String toLikeCondition(java.lang.String condition)
          検索条件文字列をLIKE述語のパターン文字列に変換する。
static java.lang.String toShortClassName(java.lang.String longClassName)
          指定されたクラス名から短縮クラス名(パッケージ修飾なし)を取得する。
static java.lang.String trim(java.lang.String str)
          文字列の両側のホワイトスペースを削除する。
static java.lang.String trimZ(java.lang.String str)
          文字列の両側の全角および半角スペースを削除する。
static java.lang.String zenkakuToHankaku(java.lang.String value)
          全角文字列を半角文字列に変換する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

LINE_SEP

public static final java.lang.String LINE_SEP
実行環境のOSで用いられる改行コードを取得する。


ZENKAKU_LIST

private static final java.lang.String ZENKAKU_LIST
全角文字リスト。

関連項目:
定数フィールド値

ZENKAKU_KASATAHA_LIST

private static final java.lang.String ZENKAKU_KASATAHA_LIST
全角カナリスト(カ、サ、タ、ハ)行とウ。

関連項目:
定数フィールド値

ZENKAKU_GAZADABA_LIST

private static final java.lang.String ZENKAKU_GAZADABA_LIST
全角カナリスト(ガ、ザ、ダ、バ)行とヴ。

関連項目:
定数フィールド値

ZENKAKU_WA_DAKUTEN

private static final java.lang.Character ZENKAKU_WA_DAKUTEN
全角カナ(ワ"[¥30f7])。


ZENKAKU_WO_DAKUTEN

private static final java.lang.Character ZENKAKU_WO_DAKUTEN
全角カナ(ヲ"[¥30fa])。


ZENKAKU_PA_LIST

private static final java.lang.String ZENKAKU_PA_LIST
全角カナリスト(パ)行。

関連項目:
定数フィールド値

HANKAKU_LIST

private static final java.lang.String HANKAKU_LIST
半角文字リスト。

関連項目:
定数フィールド値

HANKAKU_KASATAHA_LIST

private static final java.lang.String HANKAKU_KASATAHA_LIST
半角カナリスト(カ、サ、タ、ハ)行とウ。

関連項目:
定数フィールド値

HANKAKU_HA_LIST

private static final java.lang.String HANKAKU_HA_LIST
半角カナリスト(ハ)行。

関連項目:
定数フィールド値

LIKE_ESC_CHAR

public static final java.lang.String LIKE_ESC_CHAR
LIKE述語のパターン文字列で用いるエスケープ文字。

関連項目:
定数フィールド値
コンストラクタの詳細

StringUtil

public StringUtil()
メソッドの詳細

isWhitespace

public static boolean isWhitespace(char c)
指定された文字が半角スペースかどうかを判別する。 この StringUtil のトリム系メソッドで共通で利用する。

パラメータ:
c - 対象文字
戻り値:
ホワイトスペースであるときに true

isZenHankakuSpace

public static boolean isZenHankakuSpace(char c)
指定された文字が全角または半角スペースかどうかを判別する。 この StringUtil のトリム系メソッドで共通で利用する。

パラメータ:
c - 対象文字
戻り値:
全角または半角スペースであるときに true

rtrim

public static java.lang.String rtrim(java.lang.String str)
文字列の右側のホワイトスペースを削除する。引数が null のときは null を返す。

例えば Oracle の場合、 CHAR 型の列の値を ResultSet.getString() で取得すると、定義長までスペースで パディングされた文字列が返される。一方、 VARCHAR2 の場合は 右端のスペースはトリミングされるため、そのままでは両者を正しく文字列 比較することが出来ない。また、画面入力された文字列の右端にスペースが 含まれている場合に、これを VARCHAR2 の列に挿入すると スペースもそのまま格納されるが、右端のスペースをトリミングする動作が 妥当な場合も多い。このようなときにこのメソッドを利用する。

※ 全角スペースはトリミングされない。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

ltrim

public static java.lang.String ltrim(java.lang.String str)
文字列の左側のホワイトスペースを削除する。 引数が null のときは null を返す。
※ 全角スペースはトリミングされない。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

trim

public static java.lang.String trim(java.lang.String str)
文字列の両側のホワイトスペースを削除する。 引数が null のときは null を返す。
※ 全角スペースはトリミングされない。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

rtrimZ

public static java.lang.String rtrimZ(java.lang.String str)
文字列の右側の全角および半角スペースを削除する。引数が null のときは null を返す。

例えば Oracle の場合、 CHAR 型の列の値を ResultSet.getString() で取得すると、定義長までスペースで パディングされた文字列が返される。一方、 VARCHAR2 の場合は 右端のスペースはトリミングされるため、そのままでは両者を正しく文字列 比較することが出来ない。また、画面入力された文字列の右端にスペースが 含まれている場合に、これを VARCHAR2 の列に挿入すると スペースもそのまま格納されるが、右端のスペースをトリミングする動作が 妥当な場合も多い。このようなときにこのメソッドを利用する。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

ltrimZ

public static java.lang.String ltrimZ(java.lang.String str)
文字列の左側の全角および半角スペースを削除する。 引数が null のときは null を返す。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

trimZ

public static java.lang.String trimZ(java.lang.String str)
文字列の両側の全角および半角スペースを削除する。 引数が null のときは null を返す。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

toShortClassName

public static java.lang.String toShortClassName(java.lang.String longClassName)
指定されたクラス名から短縮クラス名(パッケージ修飾なし)を取得する。

パラメータ:
longClassName - クラス名
戻り値:
短縮クラス名

getExtension

public static java.lang.String getExtension(java.lang.String name)
指定された文字列から末尾の拡張子を取得する。 拡張子がない場合は空文字列を返す。 nameがnullの場合はnullを返す。

パラメータ:
name - 拡張子つきの名前
戻り値:
拡張子

toHexString

public static java.lang.String toHexString(byte[] byteArray,
                                           java.lang.String delim)
バイト配列を16進文字列に変換する。

パラメータ:
byteArray - バイト配列
delim - デリミタ
戻り値:
16進文字列

capitalizeInitial

public static java.lang.String capitalizeInitial(java.lang.String str)
指定された文字列の頭文字を大文字にする。

パラメータ:
str - 変換前の文字列
戻り値:
変換後の文字列

parseCSV

public static java.lang.String[] parseCSV(java.lang.String csvString)
CSV形式の文字列を文字列の配列に変換する。

文字列の先頭がカンマで 始まっていたり、文字列の最後がカンマで終わっている場合には、 それぞれ変換結果の配列の最初か、あるいは最後の要素が空文字列となるように 変換される。

カンマが連続している場合には、空文字列として変換される。

csvString が null だった場合には、 要素数0の配列に変換される。

パラメータ:
csvString - CSV形式の文字列
戻り値:
カンマで分解された文字列を要素に持つ配列

parseCSV

public static java.lang.String[] parseCSV(java.lang.String csvString,
                                          java.lang.String escapeString)
CSV形式の文字列を文字列の配列に変換する。

文字列の先頭がカンマで 始まっていたり、文字列の最後がカンマで終わっている場合には、 それぞれ変換結果の配列の最初か、あるいは最後の要素が空文字列となるように 変換される。

カンマが連続している場合には、空文字列として変換される。

csvString が null だった場合には、 要素数0の配列に変換される。
エスケープ文字列に設定された文字列の次にあるカンマは区切り文字 としては認識しない。
エスケープ文字列の後のエスケープ文字列はエスケープ文字として 認識しない。

パラメータ:
csvString - CSV形式の文字列
escapeString - エスケープ文字列
戻り値:
カンマで分解された文字列を要素に持つ配列

dump

public static java.lang.String dump(java.util.Map<?,?> map)
引数のマップのダンプを取得する。 値オブジェクトに配列が含まれている場合、各要素オブジェクトの toString()を行い、文字列を出力する。

パラメータ:
map - 入出力マップ
戻り値:
ダンプ文字列

getArraysStr

public static java.lang.String getArraysStr(java.lang.Object[] arrayObj)
ダンプ対象の値オブジェクトが配列形式の場合、 配列要素でなくなるまで繰り返し値を取得する。

パラメータ:
arrayObj - 配列型オブジェクト
戻り値:
配列ダンプ対象文字列

hankakuToZenkaku

public static java.lang.String hankakuToZenkaku(java.lang.String value)
半角文字列を全角文字列に変換する。

カナ文字に濁点または半濁点が続く場合は、可能な限り1文字に変換する。
(例) 'カ' + '゙' => 'ガ'

またこの変換処理では以下の全角文字も変換先文字とされる。

パラメータ:
value - 半角文字列
戻り値:
全角文字列

zenkakuToHankaku

public static java.lang.String zenkakuToHankaku(java.lang.String value)
全角文字列を半角文字列に変換する。

濁点または半濁点を持つカナ文字は、2文字に分解される。
(例) 'ガ' => 'カ' + '゙'

またこの変換処理では以下の全角文字も変換元文字と受け付ける。

パラメータ:
value - 全角文字列
戻り値:
半角文字列

getZenkakuMoji

private static java.lang.String getZenkakuMoji(char c)
半角文字を全角文字に変換する。 全角文字リストの変換処理を行う。

パラメータ:
c - 半角文字
戻り値:
全角文字

getZenkakuDakuMoji

private static java.lang.String getZenkakuDakuMoji(char c)
半角文字を全角文字に変換する。 全角カナ(ガ、ザ、ダ、バ)行とヴの変換処理を行う。

パラメータ:
c - 半角文字
戻り値:
全角文字

getZenkakuHandakuMoji

private static java.lang.String getZenkakuHandakuMoji(char c)
半角文字を全角文字に変換する。 全角カナ(パ)行の変換処理を行う。

パラメータ:
c - 半角文字
戻り値:
全角文字

getZenkakuKasatahaMoji

private static java.lang.String getZenkakuKasatahaMoji(char c)
半角文字を全角文字に変換する。 全角カナ(カ、サ、タ、ハ)行とウの変換処理を行う。

パラメータ:
c - 半角文字
戻り値:
全角文字

getHankakuMoji

private static java.lang.String getHankakuMoji(char c)
全角文字を半角文字に変換する。 このメソッドでは以下の文字を対象とした変換処理を行う。

パラメータ:
c - 全角文字
戻り値:
半角文字

filter

public static java.lang.String filter(java.lang.String str)
HTMLメタ文字列変換。

"<"、">"、"&"、"""といった、HTML中に そのまま出力すると問題がある文字を "&lt;"、"&gt;"、"&amp;"、"&quot;" に変換する。

nullが渡された場合はnullを返す。

パラメータ:
str - 変換する文字列
戻り値:
変換後の文字列

toLikeCondition

public static java.lang.String toLikeCondition(java.lang.String condition)

検索条件文字列をLIKE述語のパターン文字列に変換する。

変換ルールは以下の通り。

  1. LIKE_ESC_CHARLIKE_ESC_CHAR で エスケープする。
  2. '%'と'_'を LIKE_ESC_CHAR でエスケープする。
  3. 末尾に'%'を追加する。

conditionがnullの場合はnullを返す。

パラメータ:
condition - 検索条件文字列
戻り値:
変換後の検索条件文字列

getByteLength

public static int getByteLength(java.lang.String value,
                                java.lang.String encoding)
                         throws java.io.UnsupportedEncodingException
指定された文字列のバイト列長を取得する。 第二引数のエンコーディングでバイト列に変換するが、 エンコードが指定されていなかった場合はデフォルトのエンコーディングで バイト列に変換を行う。

パラメータ:
value - バイト列長を取得する対象の文字列
encoding - 文字エンコーディング
戻り値:
バイト列長
例外:
java.io.UnsupportedEncodingException - サポートされていない エンコーディングを指定したとき発生する例外。