Java/Java

[Java] replace, replaceAll 함수

mingmongs 2025. 3. 14. 11:11

title

자바의 String 관련 함수 중, 특정 문자열을 원하는 문자열로 치환하는 함수인 replace, replaceAll 함수가 있다.
이 두 가지 함수의 공통점과 차이점에 대해 알아보자.

 

1) replace()

  • 문법: String replace(CharSequence target, CharSequence replacement)

 

2) replaceAll()

  • 문법: String replaceAll(String regex, String replacement)

 

3) replace, replaceAll 함수 차이점

: 가장 큰 차이점은 "입력 인자값의 형"에 있다.
replace()는 CharSequence 이고 replaceAll()는 String 인자를 사용할 수 있다.
String 을 사용할 수 있다는 것의 의미는, 정규식(regular expression)을 사용할 수 있다는 의미이다.

 

4) 예시

String str1 = "Hello World! Hello Java!";
        String str2 = "My phone number is 1111-2222";

        System.out.println("str1.replace(\" \", \"\") => " + str1.replace(" ", ""));
        System.out.println("str1.replace(\"!\", \"*\") => " + str1.replace("!", "*"));
        System.out.println("str1.replace(\"Java\", \"SQL\") => " + str1.replace("Java", "SQL"));
        System.out.println("str1.replaceAll(\" \", \"\") => " + str1.replaceAll(" ", ""));

        System.out.println("str2.replace(\"-\", \"\") => " + str2.replace("-", ""));
        System.out.println("str2.replaceAll(\"[0-9]\", \"\") => " + str2.replaceAll("[0-9]", ""));

 

결과값

result

위의 결과값을 살펴보면, replaceAll 함수에는 정규식을 사용하여, 숫자를 전부 제거하였다.

 

 

[reference]
https://velog.io/@m1naworld/Java-replace-vs-replaceAll
https://bada744.tistory.com/16