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
startIndex
がendIndex
より大きい場合もエラーになります。
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"
}
Comment