蛇を駱駝に

変数名やメソッド名前の記述方法としてよく使うものに、キャメルケース(例:hogeHoge)とスネークケース(例:fuga_fuga)がありますが、これそのものズバり駱駝と蛇が語源らしいですね。(タイトルの説明)

コーディングの際、フィールド名はスネークケース・getter/setterはキャメルケース、とか、Javaのソースではキャメルケース・対応するSQLはスネークケース、みたいな使い分けがされることは多いと思うのですが、その変換用のコードです。

def toCamelCase(orig: String): String = {
    def solve(remain: String, solved: List[Char]): String = {
        if(remain.size < 2) {
            solved.reverse.mkString + remain
        }
        else {
            if(remain(0) == '_' && remain(1).isLower) {
                solve(remain.substring(2, remain.size), remain(1).toUpper :: solved)
            } else {
                solve(remain.tail, remain.head :: solved)
            }
        }
    }
    solve(orig, Nil)
}

scalaのREPLコンソールでこの関数を定義したあと、toCamelCase(“fuga_fuga”)とかやると、fugaFugaみたいなキャメルケースに変換した文字が得られます。

参考