String
String は、順序付けられた文字のコレクションを表します。
String (文字列) の完全な議論については、文字列と文字 を参照してください。
文字列の作成
init()
空の文字列を構築します。
宣言
init()
議論
このイニシャライザを使用して文字列を作成します:
let emptyString = String()
は二重引用符の便利な構文を使用するのと同じです:
let equivalentString = ""
init(count:repeatedValue:)
与えられた回数繰り返した一つの文字または Unicode スカラ値を持つ文字列を構築します。
宣言
- init(count sz: Int, repeatedValue c: Character)
- init(count: Int, repeatedValue c: UnicodeScalar)
議論
結果の文字列は与えられた repeatedValue の文字または Unicode スカラー値を含み、指定された回数繰り返します。
- let letterA: Character = "a"
- let string = String(count: 5, repeatedValue: letterA)
- // string is "aaaaa"
- let letterB: UnicodeScalar = "\u{0062}"
- let anotherString = String(count: 5, repeatedValue: letterB)
- //anotherString is "bbbbb"
文字列を照会
isEmpty
文字列が空であるかどうかを示すブール値 (読み取り専用)。
宣言
var isEmpty: Bool { get }
議論
文字列が空であるかどうかを照会し、それが文字を持たないことを意味するために、この読み取り専用のプロパティを使用します。
- var string = "Hello, world!"
- let firstCheck = string.isEmpty
- // firstCheck is false
- string = ""
- let secondCheck = string.isEmpty
- // secondCheck is true
hasPrefix(_:)
文字列の最初の文字が指定した文字列の文字と同じであるか示すブール値を返します。
宣言
func hasPrefix(prefix: String) -> Bool
議論
文字列が特定の接頭辞を持っているかどうかを決定するために、このメソッドを使用して下さい。
- let string = "Hello, world"
- let firstCheck = string.hasPrefix("Hello")
- // firstCheck is true
- let secondCheck = string.hasPrefix("hello")
- // secondCheck is false
このメソッドは、各文字列内の Unicode 拡張書記素クラスタ間の文字単位での標準的な同値比較を行います。
hasSuffix(_:)
文字列の最後の文字が、指定した文字列内の文字と同じであるかどうかを示すブール値を返します。
宣言
func hasSuffix(suffix: String) -> Bool
議論
文字列が特定の接尾辞を持っているかどうかを決定するために、このメソッドを使用して下さい。
- let string = "Hello, world"
- let firstCheck = string.hasSuffix("world")
- // firstCheck is true
- let secondCheck = string.hasSuffix("World")
- // secondCheck is false
このメソッドは、各文字列内の Unicode 拡張書記素クラスタ間の文字単位での標準的な同値比較を行います。
文字列の変換
toInt()
文字列の中の文字を整数値に変換しようとした結果を含む optional の整数を返します。
宣言
func toInt() -> Int?
議論
文字列を整数値に変換するために、このメソッドを使用して下さい。このメソッドは、optional の整数値 (Int?) を返します ー変換が成功した場合、値は返された整数です。変換が失敗した場合は、値は nil です。
- let string = "42"
- if let number = string.toInt() {
-         println("Got the number: \(number)")
- } else {
-         println("Couldn't convert to a number")
- }
- // prints "Got the number: 42"
演算子
+
二つの文字列を連結した結果を含む文字列を返します。
宣言
func +(lhs: String, rhs: String) -> String
議論
2つの文字列を連結するために + 演算子を使用して下さい。
- let combination = "Hello " + "world"
- // combination is "Hello world"
演算子の左側に指定された値が空の文字列である場合、結果の値は右側の、変更されていない値です。
+=
既存の文字列に文字列を付け加えます。
宣言
func +=( inout lhs: String, rhs: String)
議論
既存の文字列の末尾に文字列を付け加えるには、+= 演算子を使用して下さい。
- var string = "Hello "
- string += "world!"
- // string is "Hello world!"
最初の文字列が空の場合、結果の値は変更されていない rhs 値です。
var キーワードを用いて既存の文字列を宣言した場合 (つまり、変数としてであり定数でない) 既存の文字列に文字列を追加するには、+= 演算子だけが使用できます。
- let string = "Hello "
- string += "world!"
- // Error: cannot mutate a constant string
==
二つの文字列の内容が同じであるかどうかを示すブール値を返します。
宣言
func ==(lhs: String, rhs: String) -> Bool
議論
2つの文字列値が正確に同じ順序で全く同じ文字を含んでいる場合は、true と評価されます:
- let string1 = "Hello world!"
- let string2 = "Hello" + " " + "world" + "!"
- let result = string1 == string2
- // result is true
このメソッドは、各文字列内の Unicode 拡張書記素クラスタ間の文字単位で標準的な同値比較を行います。
<
1つの文字列が辞書的に別の文字列に先行しているかどうかを示すブール値を返します。
宣言
func <(lhs: String, rhs: String) -> Bool
議論
lhs 値が辞書的に、ロケールを区別しない文字の比較を行うことにより、rhs 値未満である場合は true と評価されます。
- let string1 = "Number 3"
- let string2 = "Number 2"
- let result1 = string1 < string2
- // result1 is false
- let result2 = string2 < string1
- // result2 is true
この操作は、ロケールを区別しません。その結果として、エンドユーザーに提示する文字列を比較している場合、通常、代わりに NSString のクラスのロケールを区別する比較メソッドのいずれか一つを使用する必要があります。たとえば、NSString のクラスの compare:options:range:locale: 、localizedCompare: 、 localizedCaseInsensitiveCompare: メソッドをご覧になって下さい。