ssung_끄적끄적/JAVA_끄적

replace와 replaceAll

ssungcohol 2023. 6. 21. 18:08

replace() 와 replaceAll()의 차이점을 알아보자

 

replace 는 특정 문자열을 원하는 문자열로 치환하는 메소드!

 

하지만 여기 두 가지 메소드에도 차이점이 있다.

 

String str = "replace1";

String result = str.replace("1", "")
String str = "replace1";

String result = str.replaceAll("1", "")

이 두 가지의 결과는 aaa로 값이 replace로 값이 똑같다.

 

그러면 두 가지 메소드의 차이점은 무엇일까?

String replace(CharSequence target, CharSequence replacement)

String replaceAll(String regex, String replacement)

 

replace는 첫번째 인자값에 문자열이 들어가기 때문에, 문자열만 반환이 가능하다!

그에 반에 replaceAll은 첫번째 인자값에 정규식이 들어간다! 정규식을 인자값으로 사용하면 불특정 문자열을 변환할 수 있는 장점이 있다!

 

String str = "aaabbbcccabcdddabcdeee";

String result1 = str.replace("abc", "자");
String result2 = str.replaceAll("abc", "자");

result1 의 결과 = aaabbbccc자ddd자eee

result2 의 결과 = 자자자자자자자자자자자자dddd자자자deee 가 출력된다.

 

즉, replaceAll에서는 replace에서 처리하지 못한 문자열도 처리가 가능했다.

replaceAll은 (abc)를 a, b, c 로 나누어 모든 문자를 '자'로 변환시켜주지만 replace는 (abc)를 abc로 통합하여 '자'로 변환시켜 준것이다!!

728x90