문자열에서 특정 Index의 문자를 제거하거나, 특정 문자를 모두 제거하는 등, 어떤 문자를 제거하는 방법에 대해서 알아보려고 합니다.
1. replaceAll()로 특정 문자 변경/제거
replaceAll(str, repl)
은 문자열에서 str과 일치하는 문자열을 모두 찾고 repl로 변경합니다.
- 만약 repl이 빈 문자열(
""
)이라면, 빈 문자열로 교체되면서 문자열이 제거됩니다.
void main() {
String text = "Hello, World!";
// 'o' 문자를 제거
String result = text.replaceAll('o', ''); // "Hell, Wrld!"
print(result);
}
Output:
Hell, Wrld!
2. split(), join()을 이용한 방법
string.split(str)
은 문자열을 str 기준으로 분리하여 리스트로 리턴합니다.
List.join(str)
은 List의 모든 요소를 하나의 문자열로 합치며, 요소 사이에 str을 추가하여 문자열로 연결합니다.
따라서, split('o')
로 문자열에서 o
를 모두 제거하고, join()
으로 분리된 문자열을 다시 하나의 문자열로 합칩니다. 결론적으로 o
만 제거된 문자열이 생성됩니다.
void main() {
String text = "Hello, World!";
// 'o' 문자를 제거
List<String> parts = text.split('o');
String result = parts.join(''); // "Hell, Wrld!"
print(result);
}
Output:
Hell, Wrld!
3. 정규표현식을 이용한 방법
replaceAll()는 사실 replaceAll(pattern, repl)
처럼 pattern을 인자로 받습니다. pattern은 정규식 패턴으로, 패턴과 일치하는 문자열을 모두 찾아서 repl로 교체합니다.
아래 예제는 패턴 o
(문자열 o와 동일한)와 일치하는 문자들을 모두 찾아서 빈문자열 ''
로 교체합니다.
void main() {
String text = "Hello, World!";
// 정규식을 사용하여 'o' 문자를 제거
String result = text.replaceAll(RegExp(r'o'), ''); // "Hell, Wrld!"
print(result);
}
Output:
Hell, Wrld!