Table of Contents
文字列の処理では「〜を含む」「〜から始まる」「〜で終わる」などの判別を行って条件分岐するということが多々あります。
Swiftでこの判別を行う方法をまとめます。
文字列にある特定の文字列を含むかチェック
ある文字列が、他の特定の文字列を含むかチェックするには、メソッド contains が使えるようになりました。
func contains(_ other: String) -> Bool
文字列を含むかのチェックは、今までは以下の書き方をしていました。
string.rangeOfString(other) != nil
今回追加された contains は、この書き方とまったく同じ意味です。
使用例
let string1 = "swift is good!" let string2 = "swift" if string1.contains(string2) { print("\(string1) は \(string2) を含む") // swift is good! は swift を含む }
大文字小文字は区別されます(case sensitive)
文字列がある特定の文字列から始まるかチェック
文字列の先頭が、ある文字列と一致するかをチェックするには、メソッド hasPrefix を使います。
func hasPrefix(_ prefix: String) -> Bool
使用例
let string1 = "swift is good!" let string2 = "swift" let string3 = "aaa" if string1.hasPrefix(string2) { print("\(string1) は \(string2) から始まる") // swift is good! は swift から始まる } if string1.hasPrefix(string3) { print("\(string1) は \(string3) から始まる") // 出力されません }
文字列がある特定の文字列で終わるかチェック
文字列の末尾が、ある文字列と一致するかをチェックするには、メソッド hasSuffix を使います。
func hasSuffix(_ suffix: String) -> Bool
使用例
let string1 = "swift is good!" let string2 = "swift" let string3 = "good!" if string1.hasSuffix(string2) { print("\(string1) は \(string2) で終わる") // 出力されません } if string1.hasSuffix(string3) { print("\(string1) は \(string3) で終わる") // swift is good! は good! で終わる }
以上、文字列がある文字列を含むかどうかの簡単なチェック方法でした。
ピンバック: Swiftの確認事項もろもろ(3) | AS blind side