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