Swift 3 - Supprimer caractères spéciaux (TAB, ...)
Bonjour à tous
Je suis en train de tourner en rond car je n'arrive pas à trouver l'instruction pour retirer les caractères tels que : TAB, RC dans une chaine de caractères.
Je n'ai pas trop de connaissance en Swift, disons que j'apprends vite parce que j'ai déjà un bon passé en programmation.
Si quelqu'un pouvait me guider pour avancer dans la maitrise de Swift.
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
a
a
Explications demain, là .. dodo !
Et n'hésite pas à te présenter ici : http://forum.cocoacafe.fr/forum/17-présentation-des-membres/
On peut aussi définir les caractères à éliminer sous la forme d'une chaà®ne, avec cette syntaxe :
a
a
EDIT : Encodage d'un caractère spécial sous forme d'un Character
a
a
Explication : .filter() permet de filtrer le contenu d'un tableau, avec un test indiquant si un élément doit être gardé ou éliminé.
Appliqué à une String, l'opérateur .Characters transforme celle-ci en un tableau de Characters.
La condition de filtrage est l'appartenance à un Set (groupe) de caractères, ou plutôt la non-appartenance puisque j'ai ajouté l'opération de négation binaire (!).
En une seule ligne, j'indique à Swift de :
- créer un tableau de caractères à partir d'une chaà®ne
- parcourir ce tableau et en créer un nouveau en recopiant chaque caractère, sauf ceux contenus dans listeFiltrage
- créer une nouvelle chaà®ne à partir du tableau de copie
Je trouve que le nom "filtrage" dans ton exemple est mal choisi, parce que ça fait penser qu'il s'agit d'une closure à appliquer pour filtrer.
J'aurais plutôt appelé la variable "texteFiltré".
Vois-tu ce que je veux dire ?
Tu as raison, mais je plaide qu'il était 1h30 du matin quand j'ai tapé ça en vitesse..
Il y a aussi
https://developer.apple.com/reference/swift/string/1643030-trimmingcharacters
Honte à moi. Je devrais lire la doc Apple en entier, un de ces jours ..
EDIT : Sauvé de la honte par Ceroce, qui a lu la doc
Attention, ça n'ôte les caractères qu'en début et fin de chaà®ne.
Trouvé sur SO :
C'est pas bête d'utiliser une extension.
a
a
a
Mais ce n'est pas nécessaire de passer le paramètre. On devrait jouer avec self
Le paramètre c'est la liste des caractères à exclure de la chaine.
L'exclusion de ton extension n'est pas paramétrable, contrairement à la mienne.
mais effectivement on pourrait écrire :
a
a
hola, pas mal vos réponses, je les ai testé mais j'ai toujours un pb avec des espaces devant mon texte.
j'ai utilisé ce code :
et cette ligne pour ensuite ôter les espaces mais je ne suis pas convaincu.
Pour l'instant il y a toujours 6 espaces devant, je n'aime pas le code ci-dessus pour retirer les espaces, j'aurais préféré une instruction type pour retirer ces espaces devant, instruction du genre "Trim" beaucoup plus sûr.
Bon j'avance, c'est déjà bien.
Le plus simple c'est de nous montrer ce que tu veux exactement. Un exemple de texte "avant" et un exemple "après".
Si as TOUJOURS 6 espaces vide devant tes chaà®nes, il suffit de créer une nouvelle chaà®ne en copiant les caractères à partir de la 7iéme position.
Je viens de tester ma solution et ça marche nickel.
Resultat : "fred is cool"
Si tu voulais seulement supprimer avant et après mas pas dans :
Ce qui te donnerait "fred \t is cool"
cool,
C'est exactement ce qu'il me fallait.
Pourrais-tu m'expliquer les différentes lignes dans le "func", toi ou un autre.
çà j'ai saisi
par contre le "self" çà doit correspondre au texte à modifier et que l'on retourne, non ?
En effet, on appelle trois méthodes, l'une après l'autre, en utilisant le résultat de la méthode précédente suivi par le "."
Oui et non, le self correspond à la valeur d'entrée de l'extension (le texte que l'on doit modifier). Mais le résultat retourné est une variable intermédiaire générée par le compilateur. Self n'est pas modifié pendant l'opération.
Mais c'est exactement ce que je t'ai dit hier : http://forum.cocoacafe.fr/topic/15248-swift-3-supprimer-caractères-spéciaux-tab/?p=147414 ::)
Sorry
il semble que j'ai zapper ton post hier, j'ai lu tous les posts dans la foulée mais il semble que je me sois concentré sur un en particulier.
Ton explication est parfaite, je note
Ok Draken j'ai saisi pour le "Self".
Si j'ai d'autres questions je ne manquerai pas de vous solliciter.
Merci pour vos réponses.