【问题标题】:Finding a substring in a NSString object在 NSString 对象中查找子字符串
【发布时间】:2011-04-06 12:42:02
【问题描述】:

我有一个 NSString 对象,我想通过定位一个单词来从中创建一个子字符串。

例如,我的字符串是:“The dog ate the cat”,我希望程序找到单词“ate”并创建一个子字符串,即“the cat”。

谁能帮帮我或举个例子?

谢谢,

Sagiftw

【问题讨论】:

    标签: objective-c string nsstring substring


    【解决方案1】:
    NSRange range = [string rangeOfString:@"ate"];
    NSString *substring = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    

    【讨论】:

    • 我知道这个话题很老了,但是 FWIW,你也可以使用 rangeOfString:options: 如果大小写有问题,你可以在选项中使用 NSCaseInsensitiveSearch。也就是说,如果用户在任何情况下都可以输入字符串,而您只想知道是否存在某种模式,无论大小写如何,您都可以使用不区分大小写的搜索。
    【解决方案2】:
    NSString *str = @"The dog ate the cat";
    NSString *search = @"ate";
    NSString *sub = [str substringFromIndex:NSMaxRange([str rangeOfString:search])];
    

    如果您想修剪空白,您可以单独进行。

    【讨论】:

      【解决方案3】:
      NSString *theNewString = [receivedString substringFromIndex:[receivedString rangeOfString:@"Ur String"].location];
      

      你可以搜索一个字符串,然后将搜索到的字符串变成另一个字符串...

      【讨论】:

        【解决方案4】:

        这样怎么样? 这几乎是一样的。 但是如果这样写,NSRange 的含义可能对初学者来说更容易理解。

        最后还是jtbandes的解决方案

            NSString *szHaystack= @"The dog ate the cat";
            NSString *szNeedle= @"ate";
            NSRange range = [szHaystack rangeOfString:szNeedle];
            NSInteger idx = range.location + range.length;
            NSString *szResult = [szHaystack substringFromIndex:idx];
        

        【讨论】:

          【解决方案5】:
          -(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText
          {
             return  [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location==NSNotFound?FALSE:TRUE;
          }
          

          【讨论】:

            【解决方案6】:

            试试这个..

            BOOL isValid=[yourString containsString:@"X"];
            

            此方法返回真或假。如果您的字符串包含此字符,则返回 true,否则返回 false。

            【讨论】:

            • 请注意,这仅适用于 iOS 8.0 及更高版本。
            【解决方案7】:

            您可以使用 NSString 类中提供的两种方法中的任何一种,例如 substringToIndex:substringFromIndex:。将 NSRange 作为您的长度和位置传递给它,您将获得所需的输出。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-13
              相关资源
              最近更新 更多