String replace(char oldChar, char newChar)
String replace(CharSequence target, CharSequence replacement)
String replaceAll(String regex, String replacement)
String replaceFirst(String regex, String replacement) // 첫 번째로 찾은 문자열만 변환
❓ CharSequence에 대해서는 여기를 참고
메소드 이름을 보면 replace는 문자열을 맨 앞에 나오는 것 하나만, replaceAll은 전부 교체해줄 것 같지만
사실 둘 다 해당하는 모든 문자를 찾아서 변환해준다.
예를 들어서
String str="xyxyxy"
String str1 = str.replace("x", "o");
String str2 = str.replaceAll("x", "o");
str1과 str2는 같은 결과값이 나온다. ("oyoyoy")
: replace는 정규식 사용 불가, replaceAll은 정규식 사용 가능하다.
my_string = my_string.replaceAll("[aeiou]"," ");
a,e,i,o,u 문자를 찾아 공백으로 변환해준다.
my_string = my_string.replace("[aeiou]"," ");
"[aeiou]"라는 문자열을 찾아서 공백으로 변환해준다. (정규식 사용 불가)
String은 immutable(변경 불가)이기 때문에 replace나 replaceAll 한 값을 다시 변수에 대입해주어야 값이 바뀐다.
(원래 값은 garbage가 됨)