티스토리 뷰

728x90

replace()와 replaceAll()의 공통적인 특징은 모두 특정 문자열을 다른 문자열로 변환하는 함수입니다.

 

차이점은,

  • replace()의 경우 특정 문자열과 일치하는 문자열을 찾아서 변환해주고
  • replaceAll()은 정규표현식 패턴과 일치하는 문자열을 찾아서 변환해줍니다.

메소드 정의를 보시면 replaceAll의 경우 regex(정규표현식)를 인자로 받는 것을 알 수 있습니다.

public String replace(char oldChar, char newChar)

public String replaceAll(String regex, String replacement)

 

공통점: 둘다 특정 문자열을 찾아서 변환할 수 있음

아래 예제는 replace와 replaceAll에 특정 문자열을 인자로 전달하여 치환하는 예제입니다. "is"를 찾아서 "-"로 변환하고 있습니다. 결과를 보면, replace와 replaceAll에 치환할 문자열을 전달하면 둘 다 일치하는 문자열을 모두 찾아서 치환하고 결과를 리턴합니다.

replace에 All이 붙지 않았다고 해서, 일치하는 여러 문자열 중에서 하나만 변경하진 않습니다. 일치하는 모든 문자열을 변환합니다.
public class Example1 {
    public static void main(String[] args) {

        String str = "This is Example, Topic is replace vs replaceAll";

        String newStr = str.replace("is", "-");
        System.out.println(newStr);

        newStr = str.replaceAll("is", "-");
        System.out.println(newStr);
    }
}

Output:

Th- - Example, Topic - replace vs replaceAll
Th- - Example, Topic - replace vs replaceAll

 

차이점: replace는 문자열 치환, replaceAll()은 정규식 패턴 치환

replace는 문자열 치환만 가능하지만, 다음 예제처럼 replaceAll()은 정규식을 인자로 받아서 일치하는 문자열을 치환합니다.

  • \\s : 공백을 의미하는 정규표현식입니다.
  • \\sis\\is : " is "를 의미하는 정규표현식입니다. (앞 뒤로 공백이 있고, 가운데 is 문자열)
public class Example2 {
    public static void main(String[] args) {

        String str = "This is Example, Topic is replace vs replaceAll";

        String newStr = str.replaceAll("\\sis\\s", "-");
        System.out.println(newStr);
    }
}

Output:

This-Example, Topic-replace vs replaceAll
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함