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
NSRange range = [string rangeOfString:@"ate"];
NSString *substring = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
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.
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];
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.
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 ...
-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText
{
return [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location==NSNotFound?FALSE:TRUE;
}
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.