[JAVA] replace VS replaceAll

2020. 12. 2. 20:48JAVA

replace와 replaceAll 모두 원하는 문자열을 변경하는 기능은 동일하지만, 사용법과 용도에 차이가 있다.

<replace>

-replace는 말 그대로 특정 문자열을 원하는 문자열로 치환하는 메소드

package main.java;

public class test2 {

    public static void main(String[] args) {

        String str = "I have a pen. I have an apple. I have pineapple";

        str = str.replace("I", "You"); // I 문자를 YOU로 변경

        System.out.println(str);
        // 결과 : You have a pen. You have an apple. You have pineapple

    }
}

결과 : You have a pen. You have an apple. You have pineapple

알파벳 i -> You 로 치환

replace 메소드는 문자열에서 변경하고 싶은 문자열을 찾아 치환합니다.

<replaceAll>

-첫번째 인자값에 정규식이 들어감, 정규식을 이용해 불특정 문자열을 변환

-정규식은 []로 감쌈

package main.java;

public class test2 {

    public static void main(String[] args) {

        String  str = "자동차 가격은 300,000,000원 입니다.";
        str = str.replaceAll("[0-9]", "A");
        System.out.println(str); // 결과 : 자동차 가격은 AAA,AAA,AAA원 입니다.

	String str2 = "자동차 가격은 300,000,000원 입니다.";
        str2 = str2.replaceAll("자동차", "CAR");
        System.out.println(str2); // 결과 : CAR 가격은 300,000,000원 입니다.
    }
}

첫번째 str 의 결과 값 : 자동차 가격은 AAA,AAA,AAA원 입니다.

정규식 [0-9](숫자만)을 사용하여 숫자는 모두 A로 치환하였습니다.

 

두번째 str2 의 결과 값 : CAR 가격은 300,000,000원 입니다.

정규식이 아닌 문자를 입력하였을때에는 replace와 같은 기능을 가지고 있습니다.

 

replaceAll 메소드는 문자열에서 특정 문자를 다른문자로 전체 치환하는 메소드입니다.

 

<replace VS replaceAll>

package main.java;

public class test2 {

    public static void main(String[] args) {


		//replace 사용
        String  str = "안녕하세요. 반가워요. 또 놀러오세요.";
        str = str.replace(".", "^^");
        System.out.println(str); // 결과 : 안녕하세요^^ 반가워요^^ 또 놀러오세요^^
		
        
        //replaceAll 사용
        String str2 = "안녕하세요. 반가워요. 또 놀러오세요.";
        str2 = str2.replaceAll(".", "^^");
        System.out.println(str2); // 결과 : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    }
}

replace는 .(점)을 문자로 인식하여 점 세개를 ^^ 웃는모양으로 치환하였습니다.

 

replaceAll은 .(점)을 정규식으로 인식하여 .(점)은 정규식으로 모든문자를 표현합니다.

 

그래서 str2의 결과값은 모든 문자를 ^^ 웃는 얼굴로 치환하였습니다.

 

(출처:lnsideout.tistory.com/entry/JAVA-%EC%9E%90%EB%B0%94-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%B9%98%ED%99%98-%EB%B0%A9%EB%B2%95-raplace-replaceAll-%EC%B0%A8%EC%9D%B4%EC%A0%90)