[COCOA] Remplacer un caractère par un autre dans une chaine

SuperCed

Membre expert
Club iGen
20 Juin 2001
1 333
70
45
superced.rb38.eu
Je cherche à remplacer tout simplement un caractère par un autre dans chaine de type NSString ou NSMutableString.

Bref, j'ai une chaîne NSString "voila ma chaine" et j'aimerais remplacer les espace par des "+".

J'ai cherché un peu, mais je n'ai encore rien trouvé...
 
SuperCed a dit:
Je cherche à remplacer tout simplement un caractère par un autre dans chaine de type NSString ou NSMutableString.

Bref, j'ai une chaîne NSString "voila ma chaine" et j'aimerais remplacer les espace par des "+".

J'ai cherché un peu, mais je n'ai encore rien trouvé...

Si cela peut t'aider :
/***************************************************************************
SubstituteString
Substitue une sequence present dans une chaine par une autre sequence
=> chaine source, sequence a chercher, chaine de substitution
****************************************************************************/

- (NSString *) SubstituteString:(NSString *)source fromTable:(NSString *)tag fromTable:(NSString *)substWith
{
NSArray *listItems;

listItems=[source componentsSeparatedByString:tag];
if(listItems)
source=[listItems componentsJoinedByString:substWith];
return(source);
}


Cordialement
 
Merci, pendant ce temps, j'ai trouvé une solution :
Bloc de code:
[myURL replaceOccurrencesOfString:@" " withString:@"+" options:NSLiteralSearch range: NSMakeRange(0, [myURL length])];
 
J'ai regardé un peu dans l'API Cocoa et je n'ai rien trouvé pour faire ça... je trouve ça étrange :-/

Y a bien quelques fonctions comme celle-ci, mais rien pour ton problème exactement :nailbiting:
 
La solution que j'ai trouvée est parfaite.
Tu dois regarder au mauvais endroit.
Il faut utiliser NSMutableString et pas NSString.
 
Non mais ça aurait été bien qu'Apple livre une fonction toute faite pour faire ce genre d'opération (encodage d'URL). Parce que ce que j'aime pas dans ta solution, c'est que ça va remplacer tous les espaces par des "+"... or ça ne correspond pas exactement à ce qu'il faudrait faire pour une chaîne de caractère quelconque représentant une URL.

Exemple :
Bloc de code:
http://www.monsite.com/Mon Dossier/mapage.php?param=toto titi

Si ton but c'est de rajouter un + entre toto et titi, ça va aussi rajouter un + entre Mon et Dossier, or il faudrait mettre un %20 à cet endroit pour que ça marche non ?
 
On ne parle pas de la même chose. Dans mon cas, je voulais réellement mettre des + à la place des espaces. C'est volontaire, mais mon but n'était pas ici de faire une vraie URL standard.
Mon but était de rajouter des + pour utiliser un moteur de recherche précis.

Donc dans mon cas, le sélecteur est parfait.

Par contre, en effet, pour créer une URL de toute pièce à partir d'une NSString, il faut passer par le core foundation.

J'avais trouvé une fonction qui faisait cette conversion nickel. un CFCreateMachin...
 
  • J’aime
Réactions: molgow