Javaでcamelizeとunderscoreを書いてみた

こんな感じ?
ええ、もちろんこれに必要なんで書いたんです。


こちらを参考にさせていただきました。

パフォーマンスとか考えてません><
どっかもれがあるかも・・・?

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class StringUtil{
    public static String camelize(String str, boolean... toUpper){
	Pattern pattern=Pattern.compile("[^_]+");
	Matcher matcher=pattern.matcher(str);
	StringBuffer buffer=new StringBuffer();
	while(matcher.find()){
	    buffer.append(matcher.group(0).substring(0,1).toUpperCase());
	    buffer.append(matcher.group(0).substring(1));
	}
	String result=buffer.toString();
	if(0<toUpper.length && !toUpper[0])
	    result=result.substring(0,1).toLowerCase()+result.substring(1);
	return result;
    }
    public static String underscore(String str, boolean... toUpper){
	Pattern pattern=Pattern.compile("[A-Z]+[a-z\\d]+");
	Matcher matcher=pattern.matcher(str);
	StringBuffer buffer=new StringBuffer();
	while(matcher.find()){
	    buffer.append("_");
	    buffer.append(matcher.group(0).toLowerCase());
	}
	String result=buffer.toString().substring(1);
	if(0<toUpper.length && toUpper[0])
	    result=result.toUpperCase();
	return result;
    }
    public static void main(String... args){
	System.out.println("<<camelize>>");
	String str="under_score_style_string";
	System.out.println("[source]=>"+str);
	System.out.println("[result(default)]=>"+camelize(str));
	System.out.println("[result(toLowerCase)]=>"+camelize(str,false));

	System.out.println();
	System.out.println("<<underscore>>");
	str="CamelCaseStyleString";
	System.out.println("[source]=>"+str);
	System.out.println("[result(default)]=>"+underscore(str));
	System.out.println("[result(toUpperCase)]=>"+underscore(str,true));
    }
}