2009年07月04日

【1日1Commons】ちょっとだけ高機能なキャピタライズ

// JRE 1.6.0_07
// Commons Lang 2.4
// キャピタライズ
// org.apache.commons.lang.WordUtils
// tag capitalize 大文字 小文字


String ret;

// 変換前の文字列
String str = "watasHI ha utyujIN da";

// 普通のキャピタライズは行頭とスペースの後を大文字に
ret = WordUtils.capitalize( str );
System.out.println( ret );
  // => WatasHI Ha UtyujIN Da

// デリミタを入れると、デリミタの直後の文字が大文字になる
// スペースの後は大文字とか、微妙なルール付けができる
// 例では「a」と「i」の後ろを大文字にしている
char[] delimiter = {'a', 'i'};
ret = WordUtils.capitalize(str, delimiter);
System.out.println( ret );
  // => WaTaSHI ha utyujIN da

// capitalizeFullyだと、余分なところが大文字になっていたら
// 勝手に直してくれる
ret = WordUtils.capitalizeFully( str );
System.out.println( ret );
  // => Watashi Ha Utyujin Da

// 戻すものも用意されてます
ret = WordUtils.uncapitalize( str );
System.out.println( ret );
  // => watasHI ha utyujIN da

// 指定デリミタの次の文字を小文字にする
// これは何かの機会に使えるような気がしたりしなかったり
// 例では「s」と「i」の次の文字が小文字になってます
delimiter[0] = 's';
delimiter[1] = 'j';
ret = WordUtils.uncapitalize( str, delimiter );
System.out.println( ret );
  // => watashI ha utyujiN da