이번 포스팅에서는 Java에서 특정 문자열을 원하는 문자열로 치환하는 방법을 소개한다.
1️⃣ replace()
2️⃣ replaceAll()
3️⃣ replaceFirst()
replace()
- 첫번째 인자값 : 변환하고자 하는 대상이 되는 문자열
- 두번째 인자값 : 변환할 문자 값
String str = "가나다라마바사";
str.replace("나다라", "아자차"); // 가아자차마바사
"나다라"라는 문자를 "아자차"로 치환한다.
String str = "가가가가가";
str2.replace("가", "나"); // 나나나나나
"가"라는 문자를 순차적으로 "나"로 치환한다.
replaceAll()
- 첫번째 인자값 : 변환하고자 하는 대상이 되는 문자열
- 두번째 인자값 : 변환할 문자 값
replace()와 동일한 동작을 하지만, replaceAll()의 인자 타입은 String으로 정규표현식(regular expression)을 인자 값으로 사용할 수 있다는 차이가 있다.
String str = "124578";
str.replaceAll("[369]", ""); // 124578
"[369]"라는 정규표현식은 "3", "6", "9"라는 모든 문자를 ""로 치환하겠다는 의미이다.
String str = "123456789";
str.replaceAll("[^369]", ""); // 369
동일 문자열을 대상으로 replaceAll을 하는데 이번에는 정규표현식에 ^를 추가했다.
이는 "3", "6", "9"를 제외한 모든 문자를 ""로 치환하겠다는 의미이다.
replaceFirst()
- 첫번째 인자값 : 변환하고자 하는 대상이 되는 문자열
- 두번째 인자값 : 변환할 문자 값
인자 타입이 String으로 정규표현식 사용이 가능하며 첫번째로 만난 문자열만 치환하고, 나머지는 치환하지 않는다.
String str = "121314";
str.replaceFirst("[1]", "_"); // _21314
첫번째로 만난 "1"만 "_"로 치환하고 이후 값은 치환하지 않음을 알 수 있다.
Reference
'☕ Java > API' 카테고리의 다른 글
[Java] Stream 중복 제거하기 - distinct() (0) | 2022.11.10 |
---|---|
[Java] 배열 자르기 - copyOfRange() (2) | 2022.08.31 |