[Swift]文字列から特定の文字が何文字目か取得するには?

Swift

どうも、ちょげ(@chogetarou)です。

文字列内の文字が何文字目か取得する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列から特定の文字が何文字目か取得するには、firstIndexメソッドを使います。

まず、文字列からfirstIndexメソッドを呼び出します。

そして、fistIndexメソッドの引数「of」に位置を知りたい文字を指定します。

str.firstIndex(of: char)

firstIndexメソッドは、引数「of」に指定した文字が何文字目かを返します。

firstIndexメソッドで取り出した位置は、String.Indexという特殊な値になっています。

なので、数値を取得したい場合は、utf16Offset(in: )で数値に変換する必要があります。

str.firstIndex(of: char)?.utf16Offset(in: str)

firstIndexメソッドが返す文字の位置は、「0、1、2・・・」のように、1ではなく0から始まります。

使用例

var greeting = "Hello,World"

print(greeting.firstIndex(of: "W")?.utf16Offset(in: greeting)) //Optional(6)
print(greeting.firstIndex(of: "l")?.utf16Offset(in: greeting)) //Optional(2)

オススメの記事

[Swift]文字列を正規表現で置換するには?

[Swift]数値を2進数の文字列に変換するには?

[Swift]Date(日付)を文字列に変換するには?

コメント

タイトルとURLをコピーしました