【Swift】文字列の末尾を取得/削除する方法!SubSequenceとは?

この記事からわかること
- Swiftで文字列の末尾文字を取得/削除する方法
- lastプロパティとは?
- dropLastメソッドとは?
- suffixメソッドとは?
- hasSuffixメソッドとは?
- SubSequenceとSubstringとは?
\ アプリをリリースしました /
環境
- Xcode:14.3.1
- iOS:16.4
- Swift:5.8.1
おすすめ記事:【Swift】文字列の先頭を取得/削除する方法!hasPrefix
Swiftで文字列の末尾1文字を取得する方法
Swiftで文字列の末尾1文字だけを取得するにはString
構造体のlast
プロパティを使います。
出力する際はそのままで問題ないですが、変数に格納する際は注意が必要です。last
プロパティで取得した型を出力してみるとオプショナル型のCharacter
に変わっているのが分かります。なのでString
型の変数に格納する際は明示的にキャストして格納します。
文字列末尾から任意の文字数を抽出
last
プロパティでは最後の1文字だけを取得できましたが任意の文字数だけ抽出したい場合はsuffix
メソッドを使用します。引数には抜き出したい文字数を数値(Int型)で指定します。
suffix
メソッドの戻り値はSubstring
になります。
末尾文字を比較する
文字の末尾を比較した真偽値を取得したい場合はhasSuffix
メソッドを使用します。比較は大文字/小文字を区別するので注意してください。
文字列の最後の文字を削除する
文字列の最後の文字を削除するにはdropLast
メソッドを使用します。
dropLast
メソッドの戻り値はSubstring
になります。
定義元を見てみると戻り値はSubSequence
となっています。
SubSequenceとは?
SubSequence
型とはコレクションの要素の連続した部分範囲を表すコレクションを表しています。実際に使用される際はその時に適した型が当てはめられて使用されます。今回のようなString型の場合はSubstring
型のタイプエイリアスが当てはまります。
Swiftでは文字列を表すString型も Collectionプロトコルに準拠しており集合体(Character型の集合)として扱われています。その部分集合としてSubstring
型が返ってくるようになっています。
Substring
型の公式リファレンスによると「文字列をスライスすると高速に処理できるSubstringに変わる」と記載されていました。
どうやら処理を早くするためにキャストされてしまうようです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。