Dart インデックス番号を指定して文字列から文字を抽出する

Dart インデックス番号を指定して文字列から文字を抽出する

Dartで、インデックス番号を指定して文字列から文字を抽出するコードを記述してます。「[]」内にインデックス番号を指定することで可能です。

環境

  • OS windows11 home
  • Dart 2.18.6

インデックス番号を指定して文字列から文字を抽出

インデックス番号を指定して文字列から文字を抽出するには、「 文字列[] 」を使用します。

文字列[インデックス番号]
※ 開始位置は「0」から

実際に、使用してみます。

void main() {

  String str = 'あいうえお';

  print(str[0]); // あ
  print(str[1]); // い
  print(str[2]); // う

}

実行結果を見ると、取得できていることが確認できます。

存在しないインデックスを指定すると、エラーが返ります。

void main() {

  String str = 'あいうえお';

  print(str[5]);

}

Unhandled exception:
RangeError (index): Invalid value: Not in inclusive range 0..4: 5
#0      _StringBase.[] (dart:core-patch/string_patch.dart:260:41)
#1      main (file:///c:/sample/main.dart:5:12)
#2      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#3      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)

サロゲートペア

通常の2バイトで1文字で表すところを、4バイトで1文字となるサロゲートペア文字の場合は、正常に動作しません。

void main() {

  String str = '😨😸😹😱🙊';

  print(str[0]); // �
  print(str[1]); // �
  print(str[2]); // �

}

実行結果