설명
replace는 문자 -> 문자 혹은 문자열 -> 문자열로 치환해주는 메소드이고
replaceAll은 replace 역할도 하지만, "정규식"을 사용해서 좀 더 효율적으로 문자열을 바꿀 수 있다.
예시
public class example {
public static void main(String[] args) {
String str = "ABC";
String result = str.replace("A", "");
System.out.println("replace() : "+ result);
str = "ABC";
result = str.replaceAll("A", "");
System.out.println("replaceAll() : "+ result);
}
}
결과
replace()와 replaceAll() 모두 특정 문자(혹은 문자열)를 다른 문자로 치환
public class example {
public static void main(String[] args) {
String str = "ABC1ABC2ABC3DDD";
String result = str.replaceAll("[ABC]", "");
System.out.println("ABC -> 빈 문자열 치환 : "+ result);
result = str.replaceAll("[^ABC]", "");
System.out.println("ABC가 아닌 것들 -> 빈 문자열 치환 : "+ result);
result = str.replaceAll("[A-Z]", "");
System.out.println("알바펫 모두 -> 빈 문자열 치환 : "+ result);
result = str.replaceAll("[^A-Z]", "");
System.out.println("알바펫이 아닌 것들 모두 -> 빈 문자열 치환 : "+ result);
result = str.replaceAll("[0-9]", "");
System.out.println("숫자 모두 -> 빈 문자열 치환 : "+ result);
result = str.replaceAll("[^0-9]", "");
System.out.println("숫자가 아닌 것들 모두 -> 빈 문자열 치환 : "+ result);
}
}
결과
replace를 사용했다면
String result = str.replace("A", "").replace("B", "").replace("C", "");
위의 코드처럼 변경할 문자를 일일이 나열해야 하는데
replaceAll() 정규식을 사용하면 String result = str.replaceAll("[ABC]", "");
위의 코드처럼 효율적으로 치환이 가능하다.
또한, [A-Z] [0-9] [^A-Z] [^0-9] 등의 다양한 정규식을 통해
알파벳, 숫자, 알파벳이 아닌 것, 숫자가 아닌 것들을 한 번에 몽땅 바꿀 수가 있다.
따라서 문자열에서 필요 없는 특수문자들을 제거/치환하거나
숫자 혹은 문자들을 제거/치환할 때 사용하는 것이 좋다.
'Language > JAVA' 카테고리의 다른 글
[JAVA] 진법 변환 정리 (0) | 2022.11.06 |
---|---|
[JAVA] Integer.parseInt() (0) | 2022.11.06 |
[JAVA] 자바 String 클래스 주요 메소드 (0) | 2022.10.26 |
[JAVA] 자바 Character.메소드 정리 (0) | 2022.10.25 |
[JAVA] 자바 StringBuilder 주요 메소드 (0) | 2022.10.12 |