1. ホーム
  2. ios

[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?

2022-03-18 16:01:38

質問

ある文字列( NSString ) は、別の小さな文字列を含んでいますか?

みたいなのを期待してたんだけど。

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

でも、一番近かったのは

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

とにかく、ある文字列が別の文字列を含んでいるかどうかを調べるには、これが一番いい方法なのでしょうか?

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

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でも同じです。)

????