web-dev-qa-db-fra.com

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 fasse une sous-chaîne qui sera "le chat".

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

Merci,

Sagiftw

50
Sagiftw
NSRange range = [string rangeOfString:@"ate"];
NSString *substring = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
82
Joost
NSString *str = @"The dog ate the cat";
NSString *search = @"ate";
NSString *sub = [str substringFromIndex:NSMaxRange([str rangeOfString:search])];

Si vous souhaitez réduire les espaces, vous pouvez le faire séparément.

16
jtbandes

Et de cette façon? C'est presque pareil. Mais peut-être que le sens de NSRange est plus facile à comprendre pour les débutants, s'il est écrit 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];
8
Sedat Kilinc

Essaye celui-là..

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

Cette méthode retourne vrai ou faux. Si votre chaîne contient ce caractère, elle renvoie true, sinon elle renvoie false.

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

Vous pouvez rechercher une chaîne, puis obtenir la chaîne recherchée dans une autre chaîne ...

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

Vous pouvez utiliser l'une des deux méthodes fournies dans la classe NSString, comme substringToIndex: et substringFromIndex:. Passez-lui une NSRange comme longueur et emplacement, et vous obtiendrez la sortie souhaitée.

0
Abhishek Bhardwaj