結論
先に言うと、文字列.count で得られる。
詳細
文字列の長さ(文字数)を調べるのに、Swiftでは多くのプログラミング言語にあるlengthなどのプロパティがない。これはUnicodeの導入で1文字あたりのバイト数のバリエーションが増えたため、一つのlengthで対応できないためのようだ。
そこで以下のようなそれぞれに対応したcountプロパティで得ることになる。
unicodeScalarsはUTF32用だ。
"猫".utf8.count ->3
"🐱".utf8.count ->4
"猫".utf16.count ->1
"🐱".utf16.count -> 2
"猫".unicodeScalars.count ->1
"🐱".unicodeScalars.count ->1
"猫".characters.count ->1
"🐱".characters.count ->1
最後のcharactersが「見た目に何文字か」を返してくれて一番良かったのだが、Swift 4でdeprecatedになり、結局
"猫".count ->1
"🐱".count ->1
で落ち着いたようだ。
これなら楽でいいや。
0 件のコメント:
コメントを投稿