Java에는 문자열(String)에서 특정문자 치환해줄 수 있는 기능을 제공하는 replace함수를 제공한다.
코딩테스트나 실무에서도 유용하게 사용되는 함수이니 꼭 알아두는게 좋을 것 같다.
종류에는 replace, replaceAll, replaceFirst가 있는데, 사용법은 코드를 통해 알아보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public void replaceTest() {
// ","를 "/"로 치환
String target = "딸기,토마토,수박,사과,배,포도";
String result = target.replace(",", "/");
System.out.println(result);
//결과 = 딸기/토마토/수박/사과/배/포도
String result2 = target.replaceAll(",", "/");
System.out.println(result2);
//결과 = 딸기/토마토/수박/사과/배/포도
String result3 = target.replaceFirst(",", "/");
System.out.println(result3);
//결과 = 딸기/토마토,수박,사과,배,포도
}
|
cs |
결과값만 보면 3개함수의 역할은 심플하다, replace와 replaceAll은 문자열에 존재하는 모든 ,를 /로 치환하였고,
replaceFirst는 처음 검색된 하나의 ,만을 /로 치환하였다. 여기서 문제는 replace와 replaceAll은 동일한 역할을 하는 것 같은데 왜 나눠져 있는걸까? 정답은 java API문서를 보면 알 수 있다.
replaceAll과 replaceFirst는 첫 번째 인자값으로 정규식이란 것을 확인할 수 있다, 잠깐 replaceAll의 사용법을 응용해보자면 다음과 같이 쓸 수 있을 것 같다.
1 2 3 4 5 6 7 | public void replaceTest() { String target = "200301-1235678"; String result = target.replaceAll("^(?:[0-9]{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[1,2][0-9]|3[0,1]))-[1-4][0-9]{6}$", "정상번호"); System.out.println(result); //결과 = 정상번호 } | cs |
replaceAll의 첫 번째 매개인자에 주민등록번호를 검증하는 정규식을 넣어주고, 정상일 경우 정상번호로 치환되게 하는 코드다. 이런식으로 상황에 따라 replace와 replaceAll, Frist를 상황에 따라 맞춰 사용할 수 있을 것 같다.
'JAVA' 카테고리의 다른 글
JAVA에서 ..parameter???? (가변인자) (0) | 2020.08.25 |
---|---|
HttpResponse와 Unirest를 이용한 외부 데이터 요청 (0) | 2020.06.17 |
JAVA 문자열 자르기 2 (substring 사용법) (0) | 2020.06.02 |
JAVA 문자열 자르기(split) (0) | 2020.04.17 |
JAVA의 for each문 (0) | 2020.03.10 |