본문으로 건너뛰기

Dart/Flutter - 문자열의 첫번째 문자 제거

문자열의 첫번째 문자를 제거하는 방법에 대해서 알아보겠습니다.

문자열의 첫번째 문자에 ,Text 처럼 콤마가 붙거나, 다른 불필요한 문자가 추가되어있을 때 이 문자를 제거하고 싶을 때가 있습니다. 이럴 때 어떻게 제거하는지 예제를 통해 알아보려고 합니다.

1. substring()으로 첫번째 문자 제거

substring(start)는 문자열의 start index부터 문자열 끝까지 잘라서 문자열로 리턴합니다.

따라서, substring(1)은 문자열에서 첫번째 문자만 제거된 문자열이 리턴됩니다. 제 생각에는 substring을 사용하여 구현하는 것이 가장 쉽고 간단히 첫글자를 제거하는 방법인 것 같습니다.

void main() {
String text = ",Hello! World! Dart";

String result = text.substring(1);
print(result);
}

Output:

Hello! World! Dart

2. StringBuffer와 for문으로 첫번째 문자 제거

for문으로 문자열의 문자들을 모두 순회하면서, 첫번째 문자만 제외하고 나머지 문자들을 하나의 문자열로 재조립하는 방법입니다. 문자들을 하나의 문자열로 합치는 과정에서 StringBuffer를 사용하였습니다.

  • sb.write() : 인자로 전달된 문자 또는 문자열을 StringBuffer에 순차적으로 저장
  • sb.toString() : 저장된 문자들을 하나의 문자열로 합쳐서 리턴
void main() {
String text = ",Hello! World! Dart";

StringBuffer sb = StringBuffer();
for (int i = 1; i < text.length; i++) {
sb.write(text[i]);
}
String result = sb.toString();

print(result);
}

Output:

Hello! World! Dart

3. 정규표현식으로 첫번째 문자 제거

정규표현식을 사용하여 첫번째 문자만 제거할 수도 있습니다.

replaceFirst(Pattern, repl)은 문자열에서 패턴과 일치하는 문자열을 1개 찾고 repl로 변경합니다. 아래 예제에서 패턴은 ^.이며, 문자열의 가장 앞에 있는(시작하는) 문자 1개를 의미하는 패턴입니다. 따라서 이 코드는 첫번째 문자 1개를 빈문자열 ''로 변경하면서 문자를 제거하게 됩니다.

정규표현식에 익숙하다면, substring()과 마찬가지로 짧은 코드로 간단히 구현할 수 있습니다.

void main() {
String text = ",Hello! World! Dart";

String result = text.replaceFirst(RegExp(r'^.'), '');
print(result);
}

Output:

Hello! World! Dart