2017년 11월 23일 목요일
StringUtilsの使い方
「文字列がnullのときの例外処理が面倒」
「文字列を調べる方法を知りたい」
「空白や特定の文字を削除したい」
「文字列を置換や追加したい」
StringUtilsの使い方
StringUtilsクラスは、文字列がnullの場合でもNullPointerExceptionの例外が
発生しないように作られています。
そのため、文字列がnullの場合に例外を回避するコードを書く手間を省くことができます!
StringUtilsクラスは「Apache Commons Lang」のライブラリに含まれているため、
使用するにはライブラリをダウンロードしてプロジェクトに追加する必要があります。
ライブラリのダウンロードページはこちらです。
http://commons.apache.org/proper/commons-lang/download_lang.cgi
また、ライブラリを使うには次のようなimport文が必要です。
import org.apache.commons.lang3.StringUtils;
nullの処理以外は標準APIと同じ動作をするため、
この記事では文字列がnullの場合の動作を中心に解説します。
文字列を調べる方法
文字列がnullか空か空白か調べる
文字列がnullか空か空白かを調べるにはisEmptyメソッドと
isBlankメソッドを使います。
次の例でisEmptyとisBlankの動作を確認してみましょう。
StringUtils.isEmpty(null) // true
StringUtils.isEmpty("") // true
StringUtils.isEmpty(" ") // false
StringUtils.isBlank(null) // true
StringUtils.isBlank("") // true
StringUtils.isBlank(" ") // true
StringUtils.isEmpty(null) // true
StringUtils.isEmpty("") // true
StringUtils.isEmpty(" ") // false
StringUtils.isBlank(null) // true
StringUtils.isBlank("") // true
StringUtils.isBlank(" ") // true
文字列がnullの場合でも、isEmptyとisBlankは例外を発生させずに”true”を
返しているのが確認できます!
文字列を比較する
文字列を比較するにはequalsメソッドとcompareメソッドを使います。
StringUtils.equals(null, null) // true
StringUtils.equals(null, "a") // false
StringUtils.compare(null, null) // 0
StringUtils.compare(null , "a") // -1
StringUtils.compare("a", null) // 1
StringUtils.equals(null, null) // true
StringUtils.equals(null, "a") // false
StringUtils.compare(null, null) // 0
StringUtils.compare(null , "a") // -1
StringUtils.compare("a", null) // 1
文字列がnullの場合でも比較ができていることが確認できます!
指定した文字列があるか調べる
指定した文字列があるか調べるにはindexOfメソッドとcontainsメソッドを使います・
StringUtils.indexOf(null, “a”) // -1
StringUtils.indexOf("abc", "b") // 1
StringUtils.contains(null, “a”) // false
StringUtils.contains("abc", “a”) // true
StringUtils.indexOf(null, “a”) // -1
StringUtils.indexOf("abc", "b") // 1
StringUtils.contains(null, “a”) // false
StringUtils.contains("abc", “a”) // true
indexOfメソッドのように戻り値がint型の場合は、
文字列がnullのときに”-1”を返します。
アルファベットか数字か空白か全角か判定する
アルファベットや全角、半角などの文字を判定するには、
isAlphaメソッド、isNumericメソッド、
isWhitespaceメソッド、isAsciiPrintableメソッドを使います。
StringUtils.isAlpha(null) // false
StringUtils.isAlpha("abc") // true
StringUtils.isNumeric(null) // false
StringUtils.isNumeric("123") // true
StringUtils.isWhitespace(null) // false
StringUtils.isWhitespace("") // true
StringUtils.isWhitespace(" ") // true
StringUtils.isAsciiPrintable(null) // false
StringUtils.isAsciiPrintable("samurai") // true
StringUtils.isAsciiPrintable("さむらい") // false
StringUtils.isAlpha(null) // false
StringUtils.isAlpha("abc") // true
StringUtils.isNumeric(null) // false
StringUtils.isNumeric("123") // true
StringUtils.isWhitespace(null) // false
StringUtils.isWhitespace("") // true
StringUtils.isWhitespace(" ") // true
StringUtils.isAsciiPrintable(null) // false
StringUtils.isAsciiPrintable("samurai") // true
StringUtils.isAsciiPrintable("さむらい") // false
StringUtilsを使うと文字の判定も簡単に行うことができます。
空白や特定の文字を削除する方法
空白や制御文字を削除する
空白や改行コードなどの制御文字を
削除するにはtrimメソッドとstripメソッドを使います。
StringUtils.trim(null) // null
StringUtils.trim("samurai\n") // “samurai”
StringUtils.strip(null) // null
StringUtils.strip(" abc ") // “abc”
StringUtils.trim(null) // null
StringUtils.trim("samurai\n") // “samurai”
StringUtils.strip(null) // null
StringUtils.strip(" abc ") // “abc”
文字列の先頭と末尾の空白や改行コードが削除できました!
指定した文字を削除する
指定した文字を削除するにはremoveメソッドを使います。
StringUtils.remove(null, "a") // null
StringUtils.remove("samurai", "a") // “smuri”
StringUtils.remove(null, "a") // null
StringUtils.remove("samurai", "a") // “smuri”
このように文字を指定して削除することができました!
文字列を置換や追加する方法
指定した文字を置換する
指定した文字を置換するにはreplaceメソッドを使います。
StringUtils.replace(null, "a", "b") // null
StringUtils.replace("samurai", "a", "b") // “sbmurbi”
StringUtils.replace(null, "a", "b") // null
StringUtils.replace("samurai", "a", "b") // “sbmurbi”
このように文字列の置換ができました!
文字列がnullのときに空の文字列に変える
文字列がnullのときに空の文字列を返したい場合には
defaultStringメソッドを使います。
StringUtils.defaultString(null) // “”
StringUtils.defaultString("") // “”
StringUtils.defaultString(null) // “”
StringUtils.defaultString("") // “”
このようにnullを空の文字列に変えることができました!
文字列を追加する
文字列の先頭に指定した桁数になるように
文字列を追加するには、leftPadメソッドを使います。
StringUtils.leftPad(null, 1) // null
StringUtils.leftPad("a", 3) // " a"
StringUtils.leftPad("a", 3, "b") //”bba”
StringUtils.leftPad(null, 1) // null
StringUtils.leftPad("a", 3) // " a"
StringUtils.leftPad("a", 3, "b") //”bba”
同じ文字列を繰り返し追加する場合はrepeatメソッドを使います。
StringUtils.repeat(null, 3) // null
StringUtils.repeat("abc", 3) // “abcabcabc”
StringUtils.repeat(null, 3) // null
StringUtils.repeat("abc", 3) // “abcabcabc”
このように文字列の追加ができました!
文字列の分割や結合をする
文字列を分割する
文字列を空白や指定した文字で分割するにはsplitメソッドを使います。
StringUtils.split(null) // null
StringUtils.split("samu rai") // ["samu", "rai"]
StringUtils.split("samu,rai", ",") // ["samu", "rai"]
StringUtils.split(null) // null
StringUtils.split("samu rai") // ["samu", "rai"]
StringUtils.split("samu,rai", ",") // ["samu", "rai"]
このように文字列の分割ができました!
文字列を結合する
文字列を空白や指定した文字で結合するにはjoinメソッドを使います。
StringUtils.join(null) // null
StringUtils.join(["a", "b", "c"]) // "abc"
StringUtils.join(["a", "b", "c"], ':') // "a:b:c"
StringUtils.join(null) // null
StringUtils.join(["a", "b", "c"]) // "abc"
StringUtils.join(["a", "b", "c"], ':') // "a:b:c"
このように文字列の結合ができました!
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기