일단 해보자고~

자바 :: replace() / replaceAll()의 사용법과 차이 본문

Programming Language/Java

자바 :: replace() / replaceAll()의 사용법과 차이

InWooK 2022. 9. 6. 21:56

목차

    1. replace()

    - 특정 문자를 다른 문자로 치환할 때 사용되는 메서드

    public class Replace {
    
    	public static void main(String[] args) {
    		String str = "replace";
    		
    		String result = str.replace('e', 'x');	// ('target 문자', '바꾸는 문자')
    		System.out.println(result);
    	}
    }

    target 문자란 치환이 될 문자를 나타낸 것이고, 바꾸는 문자란 해당 문자로 바뀔 문자임을 의미한다.

    replace에서 문자 e를 x로 바꾸므로 rxplacx가 나오게 된다.

     

     

    출력 : 


    2. replaceAll()

    - replace()와 마찬가지로 특정문자를 다른 문자로 치환할 때 사용되는 메서드인데 replace()와 다른 점은 replace()의 입력 인자 값은 CharSequence라는 인터페이스인데 replaceAll()의 입력 인자 값은 String 클래스이다.

    그리고 replaceAll()은 target 입력인자값에서 regex를 사용할 수 있다고 나와있는데, 이는 정규표현식을 사용할 수 있음을 나타낸다.

    public class ReplaceAll {
    
    	public static void main(String[] args) {
    		String str = "re!place@All";
    		
    		String result = str.replaceAll("[^a-z~A-Z]", "x");
    		System.out.println(result);
    	}
    }

    정규표현식을 사용했는데

    [a-z] 는 소문자 a부터 z까지를 나타내고 [a-z~A-Z]는 소문자 a부터 z까지이면서 대문자 A부터 Z까지를 나타낸다.

    거기에 ^ 이 특수문자를 붙여준다면 '해당하는 문자를 제외한'을 의미하므로 소문자 a부터 z까지, 대문자 A부터 Z까지를 제외한 문자를 x로 바꿔준다는 의미이다.

    그러므로 re!place@All는 rexplacexAll로 바뀌어 나오게 된다.

     

    출력 : 

     

    Comments