문자열을 여러 문자열로 분리하는 방법에 대해서 알아보려고 합니다. 특정 문자를 기준으로 문자열을 분리하거나, 특정 Index를 기준으로 문자열을 여러 문자열로 나누고 싶을 때가 있습니다.

1. split()을 이용한 방법

split(str)은 문자열을 str 기준으로 자르며, 분리된 문자열들을 리스트에 담아 리턴합니다.

아래 예제를 보시면, 문자열을 comma로 나누거나 공백으로 분리하였습니다.

void main() {
  String text = "Hello,World,This,is,an,example";
  List<String> parts = text.split(",");
  print(parts);

  text = "Hello World This is an example";
  parts = text.split(" ");
  print(parts);
}

Output:

[Hello, World, This, is, an, example]
[Hello, World, This, is, an, example]

2. 정규표현식을 이용한 방법

정규표현식을 사용하여 아래와 같이 특정 문자로 문자열을 분리할 수 있습니다.

  • [,] : comma 문자열을 찾는 패턴
  • text.split(regex) : text에서 패턴 regex에 해당하는 문자열을 찾고, 그 문자열을 기준으로 분리함
void main() {
  String text = "Hello,World,This,is,an,example";
  RegExp regex = RegExp(r'[,]');
  List<String> parts = text.split(regex);
  print(parts);
}

Output:

[Hello, World, This, is, an, example]

3. for문을 이용한 방법

for문으로 문자열의 문자를 순회하면서, 특정 문자를 기준으로 문자열을 자를 수 있습니다.

아래 예제는 문자열을 콤마로 자르는데, , 문자가 나오기 전까지 문자열을 하나의 문자열로 만들고, ,가 나오면 리스트에 저장하고, 다음 Index부터 새로운 문자열을 만듭니다.

void main() {
  String text = "Hello,World,This,is,an,example";
  List<String> parts = [];
  String currentPart = "";

  for (int i = 0; i < text.length; i++) {
    if (text[i] == ',') {
      parts.add(currentPart);
      currentPart = "";
    } else {
      currentPart += text[i];
    }
  }
  parts.add(currentPart);

  print(parts);
}

Output:

[Hello, World, This, is, an, example]

4. 특정 Index로 문자열 자르기

substring()을 이용하여 특정 Index로 문자열을 자를 수 있습니다.

  • substring(start) : start Index부터 끝까지 잘라서 문자열로 리턴
  • substring(start, end) : start Index부터 end 이전 Index까지 잘라서 문자열로 리턴
void main() {
  String text = "Hello,World,This,is,an,example";

  // 문자열 Index 6부터 끝까지 자름
  String result = text.substring(6);
  print(result);

  // 문자열 Index 6부터 11까지 자름
  result = text.substring(6, 11);
  print(result);
}

Output:

World,This,is,an,example
World