현재 진행 중인 프로젝트 테스트/운영 서버의 자바 환경은 jdk1.4로 되어있습니다.
하지만 제 개발 환경은 jdk 1.8로 되어있어서 개발 중 버전 차이로 인한 문제가 있었습니다.
*자바 버전을 확인하는 방법은 cmd(명령 프롬프트)나 터미널을 열어 java -version을 입력하면 확인할 수 있습니다!*
replace함수는 예를 들면, 전화번호 데이터를 가져왔을 때 010-1111-2222를 01011112222로 하이픈을 없애고 싶을 때처럼 어느 한 문자를 다른 문자로 치환해주는 함수입니다.
위 결과처럼 "-"이 문자를 "" 그냥 공백으로 치환하여 원하는 결과를 얻었습니다.
프로젝트에서는 DB에서 암호화된 주민등록번호를 받아 복호화하여 210221-3333333 와 같은 문자열로 만든 후 하이픈을 없앤 데이터를 보내주는 작업을 했는데 제 개발 환경(jdk 1.8)에서는 전혀 문제없이 실행되었습니다.
하지만 테스트 서버(jdk 1.4)에서 실행시켜보니 replace()에서 오류가 났고 replaceAll()을 사용하여 해결하였습니다.
replace()와 replaceAll() 둘 다 사용 방법은 동일하나 replaceAll()의 첫번째 인자값에는 정규식(특정 규칙을 가지는 문자열 집합을 표현하는 데 사용하는 형식 언어)을 대입하여 replace에서는 처리하지 못 한 문자열을 처리할 수 있게 해 준다고 합니다.
정규식에 관한 내용은 이번에 처음 들어봤네욤...
결론 : 자바 버전이 낮으면 replaceAll()을 사용하자
'DEV > JAVA' 카테고리의 다른 글
[MacOS] JAVA 설치(Brew) (0) | 2022.07.28 |
---|---|
[JAVA] Date Format 유효성, 형식 검사 (0) | 2021.02.18 |