☕ Java/API

[Java] 문자열 치환하기 - replace() & replaceAll() & replaceFirst()

an2z 2022. 10. 28. 12:02

이번 포스팅에서는 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 Platform SE 8

 

docs.oracle.com