在NSString对象中查找子字符串

Sag*_*ftw 50 string substring objective-c nsstring

我有一个NSString对象,我想通过定位一个单词来创建一个子串.

例如,我的字符串是:"狗吃了猫",我希望程序找到单词"ate"并创建一个将成为"猫"的子字符串.

有人可以帮助我或给我一个例子吗?

谢谢,

Sagiftw

Joo*_*ost 83

NSRange range = [string rangeOfString:@"ate"];
NSString *substring = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Run Code Online (Sandbox Code Playgroud)

  • 我知道这个主题是旧的,但是对于FWIW,您也可以使用rangeOfString:options:如果情况有问题,您可以在选项中使用NSCaseInsensitiveSearch.也就是说,如果用户可以在任何情况下输入字符串,并且您只想知道模式是否存在,则无论大小写如何,您都将使用不区分大小写的搜索. (4认同)

jtb*_*des 16

NSString *str = @"The dog ate the cat";
NSString *search = @"ate";
NSString *sub = [str substringFromIndex:NSMaxRange([str rangeOfString:search])];
Run Code Online (Sandbox Code Playgroud)

如果你想修剪空白,你可以单独做.


Sed*_*inc 8

这个怎么样?它几乎一样.但是,对于初学者来说,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];
Run Code Online (Sandbox Code Playgroud)