1. ホーム
  2. swift

[解決済み] Swiftで文字列が別の文字列を含んでいるかどうかを確認するには?

2022-02-19 11:28:02

質問

Objective-C の部分文字列をチェックするコードです。 NSString

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

しかし、Swiftでこれを行うにはどうすればよいのでしょうか?

どのように解決するのですか?

Swiftでも全く同じ呼び出しができます。

Swift 4 & Swift 5

Swift 4 では、String は Character Swift 2と3ではこうではなかったので、より簡潔なコードを使用することができます。 1 :

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")
}

古いSwift

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

PS. を忘れないでください。 import Foundation

脚注

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