Swift で文字列に別の文字列が含まれているかどうかを確認するにはどうすればいいですか? 質問する

Swift で文字列に別の文字列が含まれているかどうかを確認するにはどうすればいいですか? 質問する

Objective-C内の部分文字列をチェックするコードは次NSStringのとおりです。

NSString *string = @"hello Swift";
NSRange textRange =[string rangeOfString:@"Swift"];
if(textRange.location != NSNotFound)
{
    NSLog(@"exists");
}

しかし、Swift でこれをどうやって行うのでしょうか?

ベストアンサー1

Swift でもまったく同じ呼び出しを行うことができます。

Swift 4 と Swift 5

Swift 4 では文字列は値のコレクションですが、Swift 2 や 3 ではそうではありませんでした。そのため、より簡潔なコード1Characterを使用できます。

let string = "hello Swift"
if string.contains("Swift") {
    print("exists")
}

Swift 3.0以降

var string = "hello Swift"

if string.range(of:"Swift") != nil { 
    print("exists")
}

// alternative: not case sensitive
if string.lowercased().range(of:"swift") != nil {
    print("exists")
}

古いスウィフト

var string = "hello Swift"

if string.rangeOfString("Swift") != nil{ 
    println("exists")
}

// alternative: not case sensitive
if string.lowercaseString.rangeOfString("swift") != nil {
    println("exists")
}

私を含め、何人かの人が電話することで奇妙な問題に遭遇したので、これが役に立つ解決策であることを願っていますcontainsString()。1

追伸:忘れないでくださいimport Foundation

脚注

  1. 文字列のコレクション関数の使用にはいくつかの注意点があることを覚えておいてください。エッジケースたとえば、絵文字やアクセント付き文字などの他の書記素クラスターを扱う場合、予期しない結果が生じる可能性があります。

おすすめ記事