jp.terasoluna.fw.util
クラス StringUtil

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

public class StringUtil
extends Object

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

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


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

フィールドの詳細

LINE_SEP

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


LIKE_ESC_CHAR

public static final 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 String rtrim(String str)
文字列の右側のホワイトスペースを削除する。引数が null のときは null を返す。

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

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

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

ltrim

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

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

trim

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

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

rtrimZ

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

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

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

ltrimZ

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

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

trimZ

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

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

toShortClassName

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

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

getExtension

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

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

toHexString

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

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

capitalizeInitial

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

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

parseCSV

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

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

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

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

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

parseCSV

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

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

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

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

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

dump

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

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

getArraysStr

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

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

hankakuToZenkaku

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

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

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

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

zenkakuToHankaku

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

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

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

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

filter

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

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

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

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

toLikeCondition

public static String toLikeCondition(String condition)

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

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

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

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

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

getByteLength

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

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


Copyright © 2012. All Rights Reserved.