変数名やメソッド名前の記述方法としてよく使うものに、キャメルケース(例: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みたいなキャメルケースに変換した文字が得られます。