문자열 my_string이 매개변수로 주어질 때 a,e,i,o,u를 제거한 문자열을 return하는 solution 구축
나의 전략은 아래와 같았다:
- my_string의 길이만큼 for문을 돌린다
- if문을 사용하여 a,e,i,o,u가 있는지 확인 후 있을 경우 제거
아래와 같이 코드를 작성하였다.
class Solution {
public String solution(String my_string) {
String answer = "";
for(int i = 0; i < my_string.length(); i++){
if (my_string.charAt(i) == 'u'){
} else {
answer = my_string;
}
}
return answer;
}
}
문제는 if문을 사용한 후 charAt을 사용하여 문자를 비교하려고 하였지만 그 후 어떻게 해야할지 막혔다. 찾아보니 두가지 방법이 있었다. 하나는 vowel array를 만들어줘서 이중 for문을 돌리고 삭제하는 방식이 있었고, 또 다른 하나는 replaceAll() 메소드를 사용하는 것이였다.
class Solution {
public String solution(String my_string) {
return my_string.replaceAll("[aeiou]","");
}
}
해당 문제를 풀면서 아래와 같이 배울 수 있었다
String replaceAll(String regex, String replacement)로, replaceAll() 함수는 대상 문자열을 원하는 문자값으로 변환하는 함수.
replace()와 replaceAll()의 차이점은 인자 값의 형태에서 CharSequence와 String 이라는 차이점이다. 또한, replaceAll()의 regex는 ‘정규 표현식’을 의미한다. 즉, replaceAll()은 정규표현식 사용이 가능하다.