Dart 位置や範囲を指定して文字列を抽出する
Dartで、位置や範囲を指定して文字列を抽出するコードを記述してます。「 substring 」を使用して開始位置と終了位置を指定することで確認できます。
環境
- OS windows11 home
- Dart 2.18.1
位置や範囲を指定して文字列を抽出
位置や範囲を指定して文字列を抽出するには、「 substring 」を使用します。
文字列.substring(開始位置)
※ 開始位置は「0」
文字列.substring(開始位置,終了位置)
※ 終了位置は未満
実際に、使用してみます。
void main() {
String str = 'あいうえお';
print(str.substring(0)); // あいうえお
print(str.substring(1)); // いうえお
print(str.substring(2)); // うえお
print(str.substring(3)); // えお
print(str.substring(4)); // お
print(str.substring(0,2)); // あい
print(str.substring(1,2)); // い
print(str.substring(2,4)); // うえ
}
実行結果を見ると、取得できていることが確認できます。
開始位置は範囲を1つを超えると何も取得されませんが、そのほかはエラーとなります。
void main() {
String str = 'あいうえお';
print(str.substring(5)); //
print(str.substring(10));
}
Unhandled exception:
RangeError (start): Invalid value: Not in inclusive range 0..5: 10
#0 RangeError.checkValidRange (dart:core/errors.dart:358:7)
#1 _StringBase.substring (dart:core-patch/string_patch.dart:400:27)
#2 main (file:///c:/sample/main.dart:5:13)
#3 _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297:19)
#4 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
サロゲートペア
通常の2バイトで1文字で表すところを、4バイトで1文字となるサロゲートペア文字の場合は、指定する位置は倍になります。
void main() {
String str = '😨😸😹😱🙊';
print(str.substring(0)); // 😨😸😹😱🙊
print(str.substring(1)); // �😸😹😱🙊
print(str.substring(2)); // 😹😱🙊
print(str.substring(3)); // �😹😱🙊
print(str.substring(4)); // 😹😱🙊
}
実行結果
-
前の記事
kotlin PairのListをkeyとvalueにまとめる 2023.03.09
-
次の記事
SourceTree 破棄を行うショートカットキー 2023.03.10
コメントを書く