小编典典

如何在 Objective-C 中检查一个字符串是否包含另一个字符串?

all

如何检查字符串 ( NSString) 是否包含另一个较小的字符串?

我希望有类似的东西:

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

但我能找到的最接近的是:

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

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


阅读 128

收藏
2022-02-25

共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 中的工作方式)

馃愤

2022-02-25