본문으로 건너뛰기

Dart/Flutter - 문자열에서 특정 문자 제거

문자열에서 특정 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!