ㅁ 틀린 풀이
class Solution {
public String solution(String my_string) {
my_string.replace("a", "");
my_string.replace("e", "");
my_string.replace("i", "");
my_string.replace("o", "");
my_string.replace("u", "");
return my_string;
}
}
- String 클래스는 불변(immutable) 객체이므로, 한 번 생성된 String 객체는 변경할 수 없다.
- replace() 메서드를 호출하더라도 기존 문자열을 직접 수정하는 것이 아니라 새로운 문자열을 반환한다.
ㅁ 내 풀이
class Solution {
public String solution(String my_string) {
my_string = my_string.replace("a", "");
my_string = my_string.replace("e", "");
my_string = my_string.replace("i", "");
my_string = my_string.replace("o", "");
my_string = my_string.replace("u", "");
return my_string;
}
}
- replace()나 replaceAll()은 문자열을 수정하는 것이 아니고, 새로운 문자열(String 객체)을 반환하는 메서드다.
- 그래서 각 replace() 호출의 결과를 my_string에 다시 저장한다.
ㅁ replaceAll()과 정규식을 사용한 풀이
class Solution {
public String solution(String my_string) {
return my_string.replaceAll("[aeiou]", "");
}
}