Dart(Flutter)で文字列の一部を切り出す方法について書いています。
文字列を切り出す処理を使うのは、例えば次のようなケースです。
- ユーザー名の先頭○文字だけ表示したい
- 日付文字列から「年・月・日」を分離したい
- URLやファイルパスの一部だけ取得したい
- 入力値を加工して表示用の文字列を作りたい
※ 載せているコードはFlutter 3.29.3 / Dart 3.7.2で動作を確認しています。
Dartで文字列を切り出す基本方法
Dartでは主に次のメソッドを使って文字列を切り出します。
substring()split()replaceRange()RegExp(正規表現)
用途に応じて使い分けるのがポイントです。
substringで文字列を切り出す
substring()は指定した位置から文字列を切り出す最も基本的な方法です。
指定位置から末尾まで切り出す
void main() {
String text = 'FlutterDart';
String result = text.substring(7);
print(result); // Dart
}
- 引数に開始位置(0始まり)を指定します
- 指定位置から末尾まで取得できます
上記のコードではtext変数にいれた文字列からsubstringメソッドを呼び出しています。
「7」を指定していることで、指定した位置から最後までの文字列を切り出しています。
0番目から数えて、7番目は「D」です。出力結果は「Dart」となります。
開始位置と終了位置を指定する
void main() {
String text = 'FlutterDart';
String result = text.substring(0, 7);
print(result); // Flutter
}
- 第1引数:開始位置
- 第2引数:終了位置(この位置の文字は含まれない)
先ほどと同じコードですが、substringメソッドの開始位置を指定しています。
こうすることで、0番目から7番目(よりひとつ前)の文字列が取得できます。
ここでの結果は「Flutter」となります。
splitで区切り文字から切り出す方法
split()は特定の文字で分割したい場合に便利です。

カンマ区切りの文字列を分割する
void main() {
String text = 'apple,banana,orange';
List<String> result = text.split(',');
print(result); // [apple, banana, orange]
}
カンマ区切りの文字列を分割するときには、文字列からsplit()メソッドを呼ぶといいです。
返り値として、分割した新しいリストが返ってきます。
URLやパスを分割する例
void main() {
String path = '/users/profile/edit';
List<String> parts = path.split('/');
print(parts); // [, users, profile, edit]
}
urlの文字列をsplit()メソッドを使って、分割して返しています。
replaceRangeで指定範囲を切り出す・削除する
replaceRange()を使うと、特定範囲を削除または置換できます。
指定範囲を削除する
void main() {
String text = 'FlutterDart';
String result = text.replaceRange(7, text.length, '');
print(result); // Flutter
}
replaceRange()メソッドを呼び出して、7番目から、テキストの最後までを指定しています。
第3引数には「''」(空文字)を指定しているため、指定範囲の文字が削除されます。
結果を確認すると「Flutter」となっています。
正規表現(RegExp)で柔軟に切り出す方法
条件が複雑な場合は正規表現を使うと便利です。
数字だけ切り出す例
void main() {
String text = 'user123';
String result = text.replaceAll(RegExp(r'\D'), '');
print(result); // 123
}
このコードでは、文字列に含まれた数値を正規表現で除外して、文字のみを取得しています。
特定パターンだけ取得する例
void main() {
String text = '2026-01-16';
RegExp regExp = RegExp(r'\d{4}');
String? result = regExp.firstMatch(text)?.group(0);
print(result); // 2026
}
このコードでは、日付から連続する4桁の数値を取得しています。
結果として、西暦の2026が取得されます。
Flutterで使う場合の注意点
FlutterでもDartの文字列操作はそのまま使えます。
ただし、以下の点には注意しましょう。
substring()は範囲外を指定するとエラーになる- 日本語(マルチバイト文字)は
lengthと表示文字数が異なる場合がある - 入力値は
nullや空文字チェックを行う
文字列を切り出す方法のまとめ(表)
| 目的 | おすすめの方法 |
|---|---|
| 位置で切り出したい | substring() |
| 区切り文字で分割 | split() |
| 一部を削除・置換 | replaceRange() |
| 条件が複雑 | RegExp |
おわりに
今回はDart(Flutter)で、文字列を切り出す方法について確認していきました。
- シンプル →
substring() - 区切り文字 →
split() - 柔軟な条件 → 正規表現
それぞれ用途を使い分けて、効率的に開発していきましょう。

コメント