追記2
っていう追記も古くなりまして。。
Swift2 ではもっとシンプルですね。
aString.characters.count
追記1
下記の記事はちょっと古いです。
Swift 1.2 では count 関数を使って文字列長を求めます
println( count( aString ) )
##utf16count と countElements
NSString にあったlength
プロパティがSwintのStringには存在せず、代わりにutf16count
で文字列長を取得するっぽい。
もしくはStringのbridgeToObjectiveC
メソッドでNSStringに変換してlength
プロパティにアクセスしても同等の挙動になる。
ただ、絵文字が入ってるとちょっと厄介
var st = "?"
//NSStringとしてlengthプロパティにアクセス
println( st.bridgeToObjectiveC().length ) //2
//あるいは utf16count
println( st.utf16count )//2
ん、2文字?
println( st.lengthOfBytesUsingEncoding( NSUTF16StringEncoding )) //4
4バイトで表現される絵文字は utf16count ( または NSStringのlength ) プロパティ経由だと2文字としてカウントされてる...
ちょっと調べてみたところ、NSStringのlengthはUTF-16を2バイトコードとみなしてカウントしちゃってるっぽい。これはObjective-C NSStringの元々の挙動であり、Swiftでも互換性を保ってるという事らしいね。
println( countElements( st3 ) ) // 1
SwiftではcountElements
というグローバル関数が提供されており、文字列の各文字それぞれが、2バイト or 3バイト or 4バイト であるのかをチェックしてカウントしてくれるそうな。
ただ、重たそうなので長い文字列のカウントは注意したほうが良いとの事。