저번에 프로그래머스 문제에서 사용한 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 |