♣ Tech & Biz Salon/Tech

정규식 이용 문자열 변환 ( Camel To Using Underscore )

TasteGod 2012. 9. 11. 15:47

목적은

화면단의 jqgrid 의 sidx 값 ( Sort 기준 변수명 ) 등을 서버단에서 받아서 
DTO 세팅후 MYBATIS 로 전달하는데

DTO 세팅시에 sidx값 받은것을 codeKind => CODE_KIND 처럼 변환하기 위해서~~

( MYBATIS  내부에도 이러한 메쏘드가 어디에 있을것으로 추측됨 )

가끔식 볼때마다 꽉 잡고 싶어 탐나는 정규식...

/**

 * camel 스타일의 데이터 클래스 멤버변수명 또는 화면오브젝트명을 DB컬럼명 스타일로 변환  

 * FROM camel or pascal style TO db style using underscore 

 * userName or UserName => USER_NAME

 * @param str

 * @return value

 */

public static String camelToDbStyle(String str)

{

String regex = "([a-z])([A-Z])";

String replacement = "$1_$2";

        

        String value = "";        

        value = str.replaceAll(regex, replacement).toUpperCase();

        

        return value;

}


※ 정규식 관련 참고정보

http://stackoverflow.com/questions/10310321/regex-for-converting-camelcase-to-camel-case-in-java

http://gskinner.com/RegExr/?30ooo 직접 정규식 세팅하면서 바뀐값을 볼수 있음.

http://blog.nachal.com/501  자바스크립트로 언더바 문자를 낙타표기법으로 변환 (JavaScript, Camel Notation, Underscore

http://levin01.tistory.com/240

http://stackoverflow.com/questions/2559759/how-do-i-convert-camelcase-into-human-readable-names-in-java

http://pupustory.tistory.com/132

http://blog.naver.com/sweetej82/150131786535