Swiftでの文字列の長さの数え方

カテゴリー:  Tech タグ:  osx programming swift xcode

Swiftになって NSString と Stringが混在する状況になり自分でも混乱したので整理します。

  1. ~~countElementsというグローバルメソッドが用意されているので、これを使うのがてっとり早いでしょう~~。

  2. ~~UTF-16 表現での16ビットコード単位に基づいた utf16Countもある~~

Swift 1.2では上記の2つの方法はサポートされなくなり、グローバルメソッドのcount()に集約されました。

Swiftでは、絵文字をサポートもあり、文字によって異なるメモリ容量を持っています。よって文字列の長さを得るには、単にメモリ上のサイズを返すだけではダメで文字列の各文字を全てチェックする必要があります。あまり効率がよろしくないかもしれません。

var string1 : String = "abcdefg"
var lengh1OfString1 = countElements(string1) //Swift 1.2 ではサポートされない
var length2OfString1 = string1.utf16Count //Swift 1.2 ではサポートされない
var length3OfString1 = count(string1)
var length4OfString1 = count(string1.utf16)

コメント

Comments powered by Disqus