1文字目を小文字にしたくて - groovy 2013/10/12

groovyです。
capitalizeはデフォルトであるんですが、その逆のuncapitalizeがないんだなーというわけで、どうしようかなと悩んでたのですが、commonsにあるのでそれを使おう。

import org.apache.commons.lang.WordUtils String.metaClass.uncapitalize { WordUtils.uncapitalize(delegate) }

metaclass使って文字列処理を拡張してみます。
便利ですね!!

で、ほんとはどういことがしたかったというと
xxx_yyy_zzz
のような文字列を
xxxYyyZzz
というふうにしたかったわけです。

こんなコードを用意してみました。

conveter2 = { s -> s.tokenize('_')*.capitalize().join().uncapitalize() } assert conveter2('xxx_yyy_zzz') == 'xxxYyyZzz'

うまくいってる気はする。

: