728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120849
문제)영어에선 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
'프로그래밍 > Java(자바)' 카테고리의 다른 글
[프로그래머스] 문자열 뒤집기 -- java (0) | 2023.12.20 |
---|---|
[프로그래머스] 최빈값 구하기 -- java (0) | 2023.12.20 |
[프로그래머스] 문자열안에 문자열 -- java Feat.String 클래스의 indexOf, contains (0) | 2023.12.19 |
[프로그래머스] 자릿수 더하기 -- java (0) | 2023.12.19 |
[프로그래머스] 특정 문자 제거하기 -- java (0) | 2023.12.18 |