일반적으로 ibatis 에서는 숫자형은 # 문자열은 $로 표기한다.
그래서 파라미터를 넣고 변환하는 과정의 프로그램을 만들다가 알아낸건데.
java의 replace 관련 함수들은 (replaceFirst / replaceAll 포함) 정규표현식을 제공한다.
문제는 $ 표기는 정규표현식에서 문자열의 가장 끝을 나타낸다.
이는 replace에서 $를 기준으로 문자열을 치환한다면 문자열의 가장 끝으로 문자가 붙어 버린다.
ex) String str = "$aa ";
str = str. replace("$" , "aaa");
이라고 할때 str은 "aaaaa " 이 아닌 "$aa aaa" 이렇게 나오게 된다.
결국 $를 replace 함수 (replaceFirst / replaceAll 포함) 의 첫번째 파라미터 oldchar로 설정할땐
"$"-> "\\$" 로 해야 원하는 결과가 나올것이다.
- -_-이것때문에 두시간 날림....췟.
그래서 파라미터를 넣고 변환하는 과정의 프로그램을 만들다가 알아낸건데.
java의 replace 관련 함수들은 (replaceFirst / replaceAll 포함) 정규표현식을 제공한다.
문제는 $ 표기는 정규표현식에서 문자열의 가장 끝을 나타낸다.
이는 replace에서 $를 기준으로 문자열을 치환한다면 문자열의 가장 끝으로 문자가 붙어 버린다.
ex) String str = "$aa ";
str = str. replace("$" , "aaa");
이라고 할때 str은 "aaaaa " 이 아닌 "$aa aaa" 이렇게 나오게 된다.
결국 $를 replace 함수 (replaceFirst / replaceAll 포함) 의 첫번째 파라미터 oldchar로 설정할땐
"$"-> "\\$" 로 해야 원하는 결과가 나올것이다.
- -_-이것때문에 두시간 날림....췟.
'app > java' 카테고리의 다른 글
socket url 이용시 한글 중간 깨짐 현상 (0) | 2012.12.27 |
---|---|
java BigInteger 사용하기 (0) | 2012.02.23 |
if 문에 대한 단상 (0) | 2011.10.29 |
-Djava.endorsed.dirs= 을 찾을수 없습니다. 두번째! (0) | 2011.05.24 |
java postpix 후위연산자 (0) | 2011.05.06 |