NSString: manipulations de chaà®nes
Rocou
Membre
Bonjour,
J'ai une manipulation de chaà®ne très simple à faire mais je n'y arrive pas avec Cocoa.
Je voudrais remplacer toutes les quotes simples contenue dans une NSString par un antislash suivi d'une simple quote (remplacer ' par /' )
Voici mon code (actuel car j'ai testé beaucoup d'autres dérivés):
J'ai une manipulation de chaà®ne très simple à faire mais je n'y arrive pas avec Cocoa.
Je voudrais remplacer toutes les quotes simples contenue dans une NSString par un antislash suivi d'une simple quote (remplacer ' par /' )
Voici mon code (actuel car j'ai testé beaucoup d'autres dérivés):
NSRange range;<br /> NSString *maChaine;<br /> NSString *adr=@"rue du 'ho'ho'ho";<br /><br /> range.length=1;<br /> for (i=0;i<longueur;i++)<br /> {<br /> range.location=i; <br /> //Comparaison de chaque caractère de la NSString avec le caractère simple quote<br /> if ([adr characterAtIndex:i]==[@"'" characterAtIndex:0])<br /> {<br /> maChaine = [maChaine stringByAppendingString:@"\'"];<br /> }<br /> else<br /> { <br /> maChaine = [maChaine stringByAppendingString:[adr substringWithRange:range]];<br /> <br /> }<br /> }<br />
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
- je trouve très lourd d'utiliser NSString pour ce genre de fonction alors que la classe NSMutableString est faite pour ca.
- une fois que tu as fait ca, tu peux utiliser replaceOccurrencesOfString:withString:options:range: de NSMutableString qui fera tout le boulot à ta place.
Ha oui, merci, c'est beaucoup plus simple en effet.
Pour info, le problème venait de l'anti-slash qui, j'imagine, doit être un caractère spécial sous Xcode/Cocoa
C'est dans un but pédagogique que je cherche à le faire en objective_C/Cocoa
Par exemple une chaà®ne de caractères en C s'écrit [tt]ch = "toto";[/tt] mais si tu veux mettre un guillemet dans cette chaà®ne, il faut l'échapper pour pas que ce guillemet referme la chaà®ne, donc écrire [tt]ch = "to\"to";[/tt]...
Du coup l'antislash ayant cette signification d'échapper le caractère qui le suit... il doit lui-même être échappé aussi... en le faisant précéder d'un autre antislash.