1. ホーム
  2. ios

[解決済み] SwiftのstartWithメソッド?

2022-04-23 08:17:15

質問

SwiftにstartWith()メソッドやそれに類するものはあるのでしょうか?

私は基本的に、ある文字列が他の文字列で始まっているかどうかをチェックしようとしています。また、大文字と小文字を区別しないようにしたいです。

お分かりかもしれませんが、私は簡単な検索機能をしようとしているだけなのですが、これには惨敗しているようです。

こんな感じでお願いします。

と入力すると、"San Antonio" や "Santa Fe" などの結果が表示されるはずです。 と入力すると、"SA" や "Sa" または "sA" も返す必要があります。

を使っていました。

self.rangeOfString(find, options: NSStringCompareOptions.CaseInsensitiveSearch) != nil 

iOS9以前のバージョンでは、問題なく動作していました。しかし、iOS9にアップグレードした後、動作しなくなり、現在では検索で大文字と小文字が区別されるようになりました。

    var city = "San Antonio"
    var searchString = "san "
    if(city.rangeOfString(searchString, options: NSStringCompareOptions.CaseInsensitiveSearch) != nil){
        print("San Antonio starts with san ");
    }

    var myString = "Just a string with san within it"

    if(myString.rangeOfString(searchString, options: NSStringCompareOptions.CaseInsensitiveSearch) != nil){
        print("I don't want this string to print bc myString does not start with san ");
    }

解決方法は?

使用 hasPrefix の代わりに startsWith .

"hello dolly".hasPrefix("hello")  // This will return true
"hello dolly".hasPrefix("abc")    // This will return false