如何检查字符串是否包含字符?

时间:2014-04-08 12:25:18

标签: ios nsstring range string-comparison

如何检查包含特定字符或单词的字符串。 在我的情况下,我有一个字符串" 红色手册"。在这里,我必须在我的字符串中检查" red ma" 。 我尝试使用一系列字符串方法,但不满足条件。

这是我的代码

 NSString *string = @"red manual";
 NSRange newlineRange = [string rangeOfString:@"red ma"];
 if(newlineRange.location != NSNotFound) 
 {
     NSLog(@"found");
 }
 else
 {
     NSLog(@"not found");
 }

4 个答案:

答案 0 :(得分:7)

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

关键是注意到rangeOfString:返回NSRange struct,如果“haystack”不包含“针头”,文档会说明returns struct {NSNotFound, 0}

  

如果您使用的是iOS 8或OS X Yosemite,您现在可以:

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

这里是answered

答案 1 :(得分:1)

请尝试以下操作:

 NSString *data = @"red manual";

 if ([data rangeOfString:@"red ma" options:NSCaseInsensitiveSearch].location == NSNotFound) {
    NSLog(@"not matched");
 }
 else {
    NSLog(@"matched");
}

答案 2 :(得分:0)

看看这个great NSHipster page about NSRange,它应该比Apple的文档更好地解释一下。

答案 3 :(得分:0)

NSString *string = @"red manual";
if([string rangeOfString:@"red ma"].location == NSNotFound)
{
    NSLog(@"not found");
}
else
{
     NSLog(@"found");
}