[프로그래머스] Level0. 모음 제거

Benjamin·2023년 2월 2일
0

프로그래머스

목록 보기
6/58

내 풀이

class Solution {
    public String solution(String my_string) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++) {
            char alphabet = my_string.charAt(i);
            if(alphabet == 'a' || alphabet == 'e' || alphabet == 'i' || alphabet == 'o' || alphabet == 'u') continue;
            answer += alphabet;
        }
        return answer;
    }
}

for문을 사용하고, if문으로 조건을 5개나 체크하는게 코드가 너무 지저분하다는 생각이 들었다.

다른 풀이

class Solution {
    public String solution(String my_string) {
        String answer = "";

        answer = my_string.replaceAll("[aeiou]", "");

        return answer;
    }
}

해당 조건에 맞는 문자 전부를 치환해주는 replaceAll()을 사용하면 한줄로 깔끔하게 풀 수 있다!

replace()와 replaceAll()의 차이점은 매개변수이다.
replace()는 첫번째 매개변수에 검사하는 CharSequence이 오고, replaceAll()은 첫번째 매개변수에 String이 온다.
-> 즉, replaceAll()에서는 정규표현식을 쓴다.

저번에도 비슷한 문제가 있었는데, 특정 문자 혹은 문자열을 없애야할 때 나는 보통 지우는 기능을 하는 함수만 생각하는 경향이 있다.
문자를 대체하는 함수로도 가능하다! ""로 대체해준다고해서 아무값도 없는것으로 대체하면 된다.

0개의 댓글