Swiftでは文字列はString型です。
var str = "こんにちはSwift"
■ charactersビュー
文字列はさまざざななビューをプロパティとして持っています。たとえば個々の文字はcharactersビューとして管理されます。charactersビュー(String.CharacterView型)の各要素はCharacter型のインスタンスであり、文字列のcharactersプロパティとしてアクセスできます。また、UTF-8ビュー(utf8プロパティ)では個々の文字をUTF-8のコードとして、UTF-16ビュー(utf16プロパティ)では、UTF-16の文字コードとして取り扱うことができます。
■ 文字数を求める
文字列内の文字数を求めるにはcharactersプロパティのcountプロパティを使用します。
var str = "こんにちはSwift" print(str.characters.count) // 10
*countElements()関数は廃止されました
■ for~in文で文字列内の文字に順にアクセスする
文字列内の文字を先頭から順にアクセスするにはfor〜in文を使用します。
for c in str.characters{ print(c) }
■ 文字列を配列に変換する
文字列を、各文字を要素とする配列に変換するにはArrayイニシャライザを使用します。
var str = "こんにちはSwift" var sArray = Array(str.characters) // ["こ", "ん", "に", "ち", "は", "S", "w", "i", "f", "t"]
■ 文字列と数値と連結する
Swiftでは型変換は自動で行われません。次のように数値と文字列は型が異なるためそのままでは連結できません。
var age = 20 var msg = "私は" + age + "才です" // エラー
整数を文字列と連結するには、String型のイニシャライザは使用して文字列に変換してから連結します。
var age = 20 var msg = "私は" + String(age) + "才です"
あるいは、次のように式展開を使用しても連結できます
var age = 20 var msg = "私は\(age)才です"
■ 文字列を比較する
2つの文字列の内容が同じかどうかのを調べるには「==」演算子を使用します。
var str1 = "こんにちはSwift" var str2 = "こんにちは" + "Swift" if str1 == str2 { print("同じです") // "同じです" }
なお、「>」「=>」「<」「<=」といった比較演算子を使用すると文字列の辞書順の比較が行えます。
var str1 = "bbb" var str2 = "ddd" if str1 <= str2 { print("\(str1)より\(str2)の方が大きい") // "bbbよりdddの方が大きい" }