commons-langの便利メソッド:判定メソッドのisEmptyとisNotEmptyを使う

山崎良
2008-07-28 18:43:01
  • このエントリーをはてなブックマークに追加

作らなくていいものを作っていませんか?

 どちらかと言えば地味だけど、細かいところで意外に便利なcommons-lang。頻繁に使う処理であるだけに覚えておきたいものだ。

 同じ機能を持つUtilityメソッドを独自に実装しているケースをよく見るが、それらを作る手間が減ることはもちろん、可読性という点においても、プロジェクトや企業を越えた共通の認識は多いほど良いだろう。

 この連載「commons-langの便利メソッド」では、commons-langの中でも使用頻度の多いであろうメソッドについて解説する。

 第1回は比較的簡単なStringUtilsの判定メソッド、isEmptyとisNotEmptyを扱ってみよう。

  • StringUtils#isEmpty
  • StringUtils#isNotEmpty

 コーディング中に文字列の判定処理として以下のような処理を書くことが頻繁にある。

//「文字列がnullまたは空("")である」
if( str==null || str.equals("") ){
// 〜〜
}

//「文字列がnullでも空("")でもない」
if( str!=null && !str.equals("") ){
// 〜〜
}

 commons-langを使った場合は、同じ処理をそれぞれ以下のように記述することができる。どちらの場合も結果は同じだが、「!=」や「&&」を使って複数の条件を書く場合に比べ、分岐内容が一目でわかりやすい。

//「文字列がnullまたは空("")である」
if( StringUtils.isEmpty(str) ){
// 〜〜
}

//「文字列がnullでも空("")でもない」
if( StringUtils.isNotEmpty(str) ){
// 〜〜
}

 条件が増えた場合は、さらに見通しが良くなる。

//「str1〜str3の文字列がnullでも空("")でもない」
if( (str1==null || str1.equals(""))
|| (str2==null || str2.equals(""))
|| (str3==null || str3.equals("")) ){
// 〜〜
}

if( StringUtils.isEmpty(str1) 
|| StringUtils.isEmpty(str2) 
|| StringUtils.isEmpty(str3) ){
// 〜〜
}

 引数に応じたメソッドの結果はそれぞれ以下のようになる(同じ引数を渡した場合のisEmptyとisNotEmptyの結果は逆になる)。

  • StringUtils.isEmpty(null) = true
  • StringUtils.isEmpty("") = true
  • StringUtils.isEmpty(" ") = false
  • StringUtils.isEmpty("aaa") = false
  • StringUtils.isEmpty(" aaa ") = false
  • StringUtils.isNotEmpty(null) = false
  • StringUtils.isNotEmpty("") = false
  • StringUtils.isNotEmpty(" ") = true
  • StringUtils.isNotEmpty("aaa") = true
  • StringUtils.isNotEmpty(" aaa ") = true
  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]