50 votes

Recherche d'une sous-chaîne dans un objet NSString

J'ai un objet NSString et je veux en faire une sous-chaîne, en localisant un mot.

Par exemple, ma chaîne est : "Le chien a mangé le chat", je veux que le programme localise le mot "mangé" et crée une sous-chaîne qui sera "le chat".

Quelqu'un peut-il m'aider ou me donner un exemple ?

Merci,

Sagiftw

83voto

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

16voto

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

Si vous voulez couper les espaces blancs, vous pouvez le faire séparément.

8voto

Sedat Kilinc Points 549

Qu'en est-il de cette façon? C'est presque pareil. Mais peut-être que la signification de NSRange est plus facile à comprendre pour les débutants, si elle est écrite de cette façon.

Enfin, c'est la même solution de 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];
 

2voto

Pradeep Reddy Kypa Points 1388
NSString *theNewString = [receivedString substringFromIndex:[receivedString rangeOfString:@"Ur String"].location];

Vous pouvez rechercher une chaîne de caractères et ensuite transformer la chaîne recherchée en une autre chaîne...

1voto

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X