728x90

https://school.programmers.co.kr/learn/courses/30/lessons/120849

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제)영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

 

 

 

 

풀이)

class Solution {
    public String solution(String my_string) {
        String answer = "";
        
        my_string = my_string.replace("a", "");
        my_string = my_string.replace("i", "");
        my_string = my_string.replace("e", "");
        my_string = my_string.replace("o", "");
        answer = my_string.replace("u", "");
        
        return answer;
    }
}

더 쉬운 클래스가 굉장히 많을 꺼 같아서 다른 사람들이 푼 방법을 찾아보니까 정말 다양한 클래스가 많았다.

그 중에 인상 깊었던게

class Solution {
    public String solution(String myString) {
    	//"|"는 정규표현식에서 또는의 의미를 가지고 있음
        return myString.replaceAll("a|e|i|o|u", "");
    }
}

이거랑

class Solution {
    public String solution(String my_string) {
        String answer = "";
		//[]는 정규표현식에서 문자클래스를 의미한다. aeiou에 해당되는거는 다 ""로 바꾸겠다는 뜻이다
        answer = my_string.replaceAll("[aeiou]", "");

        return answer;
    }
}

 

 

String 클래스의 - replace(), replaceAll()

메서드/설명 예시 결과
String replace(char old, char new) String s = "kitty";
String x1 = s.replace('k','c');
x1="citty"
문자열 중의 문자(old)를 새로운 문자(new)로 바꾼 문자열을 반환한다.
String replaceAll(String regex, String replacement) String s = "hello kitty";
String x1 = s.replaceAll("[aeiou]", "");
x1="hll ktty"
문자열 중에서 지정된 문자열(regex)과 일치 하는 것을 새로운 문자열(replacement)로 모두 변경한다.

 

 

'replaceAll'메서드에 사용할 수 있는 일부 정규 표현식 패턴을 알아보자🖤

1. 문자클래스

  • '[aeiou]' : 소문자 모음에 해당하는 문자
  • '[A-Z]' : 대문자 A부터 Z까지의 모든 문자
  • '[0-9]' : 숫자 0부터 9까지의 모든 문자
  • '[^aeiou]' : 소문자 모음을 제외한 모든 문자

2. 메타 문자

  • '.'  : 임의의 한 문자.
  • '*' : 0회 이상 반복되는 문자
  • '+' : 1회 이상 반복되는 문자
  • '?' : 0회 또는 1회 등장하는 문자
  • '^' : 문지열의 시작
  • '$' : 문자열의 끝

3. 그룹화 및 OR연산자

  • '(pattern)' : 그룹화하여 패턴을 만든다.
  • 'pattern1|pattern2' : 패턴1 또는 패턴2에 해당하는 문자

4. 사용자 정의 문자 클래스

  • '\d' : 숫자와 동일('[0-9]'와 동일)
  • '\D' : 숫자가 아닌 문자('[^0-9]'와 동일)
  • \w : 단어 문자(알파벳 대소문자, 숫자, 언더스코어 '_')
  • \W :  단어 문자가 아닌 문자 

5. 수량자

  • '{n}' : 정확히 n번 반복ㄱ
  • '{n, }' : n번 이상 반복
  • '{n, m}' : n번 부터 m번 까지 반복

 

예를 들어, "\\d+"는 하나 이상의 숫자를 나타내며, "[^a-zA-Z]"는 알파벳이 아닌 문자를 나타냅니다. 이러한 패턴을 replaceAll 메서드에 사용하여 문자열을 변환할 수 있습니다.

728x90