[Swift3.0] ある文字列がStringに含まれるかをチェックする

By | 2016年10月12日

文字列の処理では「〜を含む」「〜から始まる」「〜で終わる」などの判別を行って条件分岐するということが多々あります。

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! で終わる
        }

以上、文字列がある文字列を含むかどうかの簡単なチェック方法でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*