MENU

【Flutter/Dart】substring()で文字列の一部を取り出す

記事内に商品プロモーションが含まれる場合があります

substringは、Flutter(Dart)で文字列操作を行うためのメソッドの1つです。

指定した範囲の文字列を取得するのに使います。

目次

基本構文

String substring(int startIndex, [int? endIndex])
  • startIndex:
    • 抜き出したい部分文字列の開始位置(0から始まるインデックス)。
  • endIndex(オプション):
    • 抜き出したい部分文字列の終了位置(終了位置の文字は含まれない)。

使用例

1. 開始位置を指定

substringを使って、開始位置から文字列を切り取る例です。

void main() {
  String text = "Flutter is amazing";
  String result = text.substring(8); // "is amazing"
  print(result);

startIndexが8なので、インデックス8から最後までの文字列を取得します。

つまりendIndexを指定しない場合は、startIndexから最後までの文字列を取得することになります。

2. 開始位置と終了位置を指定

終了位置を指定することで、特定の範囲の文字列を切り取ることができます。

void main() {
  String text = "Flutter is amazing";
  String result = text.substring(0, 7); // "Flutter"
  print(result);
}

開始位置は0(最初の文字)、終了位置は7(終了インデックスの文字は含まない)なので、”Flutter”が取得されます。

エラーハンドリング

1. インデックス範囲外

指定したstartIndexまたはendIndexが文字列の長さを超えると、RangeErrorが発生します。

void main() {
  String text = "Flutter";
  print(text.substring(0, 10)); // エラー: RangeError
}

2. startIndex > endIndex

startIndexendIndexより大きい場合もエラーになります。

void main() {
  String text = "Flutter";
  print(text.substring(5, 3)); // エラー: RangeError
}

活用例

1. ファイル拡張子を取得

substringを使ってファイル名から拡張子を取り出す例です。

void main() {
  String filename = "example.txt";
  String extension = filename.substring(filename.lastIndexOf('.') + 1); // "txt"
  print(extension);
}

2. 電話番号のフォーマット

電話番号を分割してフォーマットする例です。

void main() {
  String phone = "1234567890";
  String formatted = "${phone.substring(0, 3)}-${phone.substring(3, 6)}-${phone.substring(6)}";
  print(formatted); // "123-456-7890"
}
Share

Comment

コメントする

目次