【问题标题】:How to search for NSMutablearray content in substring of a NSString?如何在 NSString 的子字符串中搜索 NSMutablearray 内容?
【发布时间】:2011-07-15 05:30:29
【问题描述】:

我创建了一个 NSMutableArray 并正在搜索/匹配数组的内容与 NSString's 子字符串,但该怎么做?

NSMutableArray *tmparray = {@"PPG" , @"AG" , @"HD" };
NSString *tmpstring = @"MAAPPG";

if ([tmparray containsObject:tmpstring] ) {
  NSLog(@"String found");
}

但它没有发生,因为 tmparray 包含“PPG”而不是“MAAPPG”如何搜索子字符串匹配?

【问题讨论】:

    标签: iphone objective-c cocoa-touch cocoa ipad


    【解决方案1】:

    您可以使用NSPredicate 来执行此操作,但它可能会很慢。这是一种更简单的方法,与您尝试的方法类似:

    NSMutableArray *tmparray = {@"PPG" , @"AG" , @"HD" };
    NSString *tmpstring = @"MAAPPG";
    NSRange *tmprange;
    for(NSString *string in tmparray) { 
        tmprange = [tmpstring rangeOfString:string];
        if (tmprange.location != NSNotFound) {
            NSLog(@"String found");
            break;
        }
    }
    

    【讨论】:

    • 你的休息时间给了你+1 :)
    • 应该用rangeOfString 代替rangeOfSubstring
    【解决方案2】:

    这个怎么样

    for(NSString *arrString in tmparray){
     if([tmpstring rangeOfString:arrString].location != NSNotFound){
       NSLog(@"String found");
     }
    }
    

    【讨论】:

      【解决方案3】:
      NSArray *tmparray = [NSArray arrayWithObjects:@"PPG" , @"AG" , @"HD",nil];
          NSString *tmpstring = @"MAAPPG";
          NSRange textRange;
          for(NSString *string in tmparray)
          {
              textRange =[tmpstring rangeOfString:string];
              if(textRange.location != NSNotFound)
              {
                  NSLog(@"String found ");
              }
          }
      

      也可以通过使用其他子字符串来检查...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-25
        • 2012-06-01
        • 1970-01-01
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        相关资源
        最近更新 更多