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)); } }