在NSString对象中查找子字符串

时间:2010-08-31 22:08:24

标签: objective-c string nsstring substring

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

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

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

谢谢,

Sagiftw

7 个答案:

答案 0 :(得分:82)

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

答案 1 :(得分:16)

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

如果你想修剪空白,你可以单独完成。

答案 2 :(得分: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];

答案 3 :(得分:3)

试试这个..

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

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

答案 4 :(得分:2)

NSString *theNewString = [receivedString substringFromIndex:[receivedString rangeOfString:@"Ur String"].location];

您可以搜索字符串,然后将搜索到的字符串转换为另一个字符串...

答案 5 :(得分:1)

-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText
{
   return  [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location==NSNotFound?FALSE:TRUE;
}

答案 6 :(得分:0)

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