だらだらやるよ。

こげつのIT技術メモ

Camelizeしてみた

ついでにこれも作ったので張っておく
RailsのActive Supportに用意されてるcamelizeメソッドを参考に書いてみた。
スラッシュとコロンの変換ははぶいちゃいました。
Regexがメンバになってるのはパフォーマンス気にしただけ。

private string Camelize(string underScoredWord) {
	return Camelize(underScoredWord,true);
}

Regex _camelizePattern = new Regex("([^_]+)");
private string Camelize(string underScoredWord,bool isUpper) {
	string rslt = _camelizePattern.Replace(underScoredWord,delegate(Match m) {
		return m.Value == "" ? "" : Char.ToUpper(m.Value[0]) + m.Value.Substring(1);
	});
	rslt = rslt.Replace("_","");
	if(isUpper) { return rslt; }
	return Char.ToLower(rslt[0]) + rslt.Substring(1);
}

ついでにunderscoreメソッドもー

Regex _underScorePattern1 = new Regex("([A-Z]+)([A-Z][a-z])");
Regex _underScorePattern2 = new Regex("([a-z\\d])([A-Z])");
private string UnderScore(string camelizedWord) {
	string str = _underScorePattern1.Replace(camelizedWord,"$1_$2");
	return _underScorePattern2.Replace(str,"$1_$2").ToLower();
}