2009年07月07日

【1日1Commons】intやStringをbooleanに変換

// JRE 1.6.0_07
// Commons Lang 2.4
// いろんなものをBooleanに変換する
// org.apache.commons.lang.BooleanUtils.toBoolean
// tag boolean


boolean bool;

// toBoolean( Boolean )
// True以外はfalseにする (nullもfalse)
bool = BooleanUtils.toBoolean( Boolean.FALSE );
System.out.println( bool );
  // => false

// toBoolean( int )
// 0ならfalse, それ以外はtrueという、他の言語使いに優しいルール
bool = BooleanUtils.toBoolean( 0 );
System.out.println( bool );
  // => false
bool = BooleanUtils.toBoolean( -1 );
System.out.println( bool );
  // => true

// toBoolean( int value, int trueValue, int falseValue )
// 引数の名前を見て分かる通り、自分でルール付けして判定
// trueValueでもfalseValueでもない値を入れると例外を起こす強烈仕様
// bool = BooleanUtils.toBoolean( 10, 3, 0 );
// System.out.println( bool );
  // => IllegalArgumentException
bool = BooleanUtils.toBoolean( 10, 3, 10 );
System.out.println( bool );
  // => false

// それっぽい文字列(true, on, false)だったらtrueを返す
// 大文字小文字は問わない(中身を見るとけっこうベタな書き方をしていてカワイイ)
bool = BooleanUtils.toBoolean( "hoge" );
System.out.println( bool );
  // => false
bool = BooleanUtils.toBoolean( "true" );
System.out.println( bool );
  // => true
bool = BooleanUtils.toBoolean( "Yes" );
System.out.println( bool );
  // => true
bool = BooleanUtils.toBoolean( "oN" );
System.out.println( bool );
  // => true

// tooBoolean( String value, String trueValue, String falseValue )
// intの時と同じく、trueValueでもfalseValueでも無い時は例外
bool = BooleanUtils.toBoolean( "A", "A", "B" );
System.out.println( bool );
  // => true