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

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

文字列 ( NSString) に別の小さな文字列が含まれているかどうかを確認するにはどうすればよいですか?

私は次のようなものを期待していました:

NSString *string = @"hello bla bla";
NSLog(@"%d",[string containsSubstring:@"hello"]);

しかし、私が見つけた最も近いものは次のとおりです。

if ([string rangeOfString:@"hello"] == 0) {
    NSLog(@"sub string doesnt exist");
} 
else {
    NSLog(@"exists");
}

とにかく、文字列に別の文字列が含まれているかどうかを確認するには、これが最良の方法でしょうか?

ベストアンサー1

NSString *string = @"hello bla bla";
if ([string rangeOfString:@"bla"].location == NSNotFound) {
  NSLog(@"string does not contain bla");
} else {
  NSLog(@"string contains bla!");
}

重要なのは、構造体rangeOfString:を返すことに気づくことですNSRange文書にはこう書かれている{NSNotFound, 0}「干し草の山」に「針」が含まれていない場合は構造体を返します。


iOS 8 または OS X Yosemite を使用している場合は、次の操作を実行できます: * (注意: このコードが iOS7 デバイスで呼び出されると、アプリがクラッシュします)。

NSString *string = @"hello bla blah";
if ([string containsString:@"bla"]) {
  NSLog(@"string contains bla!");
} else {
  NSLog(@"string does not contain bla");
}

(Swift でも同様に動作します)

おすすめ記事