ios - 如何在 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");
}

无论如何,这是查找一个字符串是否包含另一个字符串的最佳方法吗?

最佳答案

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

关键是注意到 rangeOfString: 返回一个 NSRange 结构,并且 the documentation says如果“haystack”不包含“needle”,则返回结构 {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 中的工作方式)

https://stackoverflow.com/questions/2753956/

相关文章:

objective-c - Objective-C 中的 typedef 枚举是什么?

ios - 如何在 Objective-C 中创建委托(delegate)?

ios - Objective-C 中的常量

ios - 如何为约束更改设置动画?

ios - 延迟后如何触发 block ,例如 -performSelector :withObje

objective-c - 在 Objective-C 中生成随机数

ios - 如何将 NSString 值转换为 NSData?

ios - 如何查看iOS版本?

objective-c - 如何从 Swift 调用 Objective-C 代码?

objective-c - Objective-C 中用于连接 NSString 的快捷方式