Post

Java replace(), repalceAll(), replaceFirst() 차이점

1. repalce()

String replace(CharSequence target, CharSequence replacement)로, 첫번째 매개변수는 변환하고자 하는 대상이 될 문자열, 두번째 매개변수는 변환할 문자 값이다.

1
2
3
4
5
6
public class ReplaceTest {
    public static void main(String[] args) {
        String replaceTest = "리플레이스 테스트";
        System.out.println(replaceTest.replace("리플레이스", "replace"));
    }
}

2. repalceAll()

String replaceAll(String regex, String replacement)로, replaceAll() 함수는 대상 문자열을 원하는 문자값으로 변환하는 함수이다.

첫번째 매개변수는 변환하고자 하는 대상이 될 문자열이고 두번째 매개변수는 변환할 문자 값이다.

1
2
3
4
5
6
public class ReplaceAllTest {
    public static void main(String[] args) {
        String replaceAllTest = "리플레이스의 리플레이스 테스트";
        System.out.println(replaceAllTest.replaceAll("리플레이스", "replaceAll"));
    }
}

3. replaceFirst()

String replaceFirst(String regex, String replacement)로 처음으로 만나는 패턴만 대치하고, 정규식을 활용할 수 있다.

1
2
3
4
5
6
7
8
9
public class ReplaceFirstTest {
    public static void main(String[] args) {
        String replaceFirstTest = "past is just past";
        System.out.println(replaceFirstTest.replaceFirst("past", "future")); // future is just past
        System.out.println(replaceFirstTest.replaceFirst("[a-z]", "1")); // 1ast is just past
        System.out.println(replaceFirstTest.replaceFirst("t$", "1")); // past is just pas1
        System.out.println(replaceFirstTest.replaceFirst(".", "?")); // ?ast is just past
    }
}

4. repalce() vs repalceAll()

replace()와 replaceAll()의 차이점은 인자 값의 형태에서 CharSequence와 String 이라는 차이점이다.

또한, replaceAll()의 regex는 ‘정규 표현식’을 의미한다. 즉, replaceAll()은 정규표현식 사용이 가능하다.

1
2
3
4
5
6
7
public class AllTest {
    public static void main(String[] args) {
        String allTest = "aaabbbvccacfgdracabtghd";
        System.out.println(allTest.replace("ab", "0")); // aa0bbvccacfgdrac0tghd
        System.out.println(allTest.replaceAll("[ab]", "0")); // 000000vcc0cfgdr0c00tghd
    }
}

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.