본문 바로가기
언어 공부/Java

[JAVA] Replace(문자열 치환) 에 대하여

by krapoi 2021. 10. 5.
반응형

저번에 프로그래머스 문제에서 사용한 replace에 대해 들고 왔다.

 

일단 rplace에 대해 간단히 소개하겠다.

replace는 배열에서 자신이 바꾸자 하는 값을 골라서 바꿀 수 있는 함수이다.

종류로는 replace, replaceAll, replaceFirst 이렇게 3가지가 있다.

 

먼저 Replace이다.

 String string = new String("a b c d e f g");
        string = string.replace(" ", ",");
        System.out.println(string);
        //결과 : a,b,c,d,e,f,g

replace("기존 문자", "바꿀 문자") 방식으로 사용하며,

위 코드에서는 공백(띄어쓰기)을 , (반점)으로 바꾸었다.

자신이 바꾸고 싶은 문자로 문자열을 바꿔 준다.

 

 

다음 ReplaceAll이다.

 String string = new String("a b c d e f g");
        string = string.replaceAll(" ", ",");
        System.out.println(string);
        //결과 : a,b,c,d,e,f,g

replaceAll은 자신이 바꾸고 싶은 문자로 문자열 전체를 전부 치환하는 기능이다.

여기서 replace와 replaceAll가 같지 않냐고 생각할 것이다.

이 둘의 차이점은 replaceAll은 첫 번째 인자 값으로 정규식을 받는다는 것이다.

말로서는 잘 모를 수 있으니 그냥 예제로 보자.

 

replace

 String string = new String("가가나나다다가나다라마바사");
        string = string.replace("가나다", ".");
        System.out.println(string);
        //결과 : 가가나나다다.라마바사

replaceAll

String string = new String("가가나나다다가나다라마바사");
        string = string.replaceAll("[가나다]", ".");
        System.out.println(string);
        //결과 : .........라마바사

이처럼 replaceAll에는 정규식을 넣어서 replace에서 처리하지 못한 부분도 처리한다.

근데 replaceAll 예제에서 정규식을 넣는다 는 것은 알겠는데 [가나다] 이 부분은 뭔지 모를 것이다.(정규식을 모른다면)

 

[가나다]는 정규식 표현방법이다.

정규식은 [] 안에 있는 문자를 전부 다 변환해 준다. 즉 가, 나, 다 각각 다 변환을 해준다. 

정규식은 정말 유용한데 여기서는 다루지 않겠다.

 

마지막으로 ReplaceFirst이다.

String string = new String("121112222");
        string = string.replaceFirst("1", "*");
        System.out.println(string);
        //결과 : *21112222

replaceFirst는 자신이 바꾸고 싶은 문자열이 처음이라면 그 문자만 치환하고 끝난다.

 

반응형

'언어 공부 > Java' 카테고리의 다른 글

[JAVA]추상클래스, 추상매소드  (0) 2021.10.08
[JAVA] 람다식의 개념과 사용법  (0) 2021.10.07
객체지향 프로그래밍  (0) 2021.09.16
JAVA 메소드의 개념  (0) 2021.09.14
자바 extends와 implements 에 대해  (0) 2021.09.07