Mettre un espace entre les Chiffres sur Xcode.

Rshitek

Membre confirmé
6 Octobre 2019
10
0
40
Bonjour à tous et à toutes,

Je souhaite écrire des chiffres sur Xcode dans un label (donc non modifiable par l'utilisateur), ayant un espace entre eux.
Passer de : 123456789012 à ca: 123 456 789 012

Le rentrer manuellement ne fonctionne pas. il faudrait écrire une ligne de code que bien sur, je ne connais pas.

Auriez vous une solution quelconque à me proposer?

Merci d'avance.
 
Bonjour,
En décomposant ta chaîne de caractères et en insérant un espace tout les N caractères (ici 3).

Bloc de code:
let text = "123456789012"
var newText = String()
for (index, character) in text.enumerated() {
    if index != 0 && index % 3 == 0 {
        newText.append(" ")
    }
    newText.append(String(character))
}
print(newText)

// ou plus compact
newText = String(text.enumerated().map { $0 > 0 && $0 % 3 == 0 ? [" ", $1] : [$1]}.joined())
print(newText)
 
Dernière édition par un modérateur:
Bonjour,
merci beaucoup pour ta réponse j'essaierai tes lignes de codes (quand Xcode aura fini de faire sa mise à jour).
Néanmoins j'ai une question, est ce valable quelque soit les chiffres que je mettrai?

Merci encore une fois.
 
Re,
J'ai essayé mais ça ne fonctionne pas.
Je m'explique un peu plus en détail.
J'ai un slider dans une view précédente. Le résultat (lorsque je bouge le slider) apparaît dans ma view suivante.
J'aimerai alors que le résultat affiché à mon slider (correspondant à la suite de nombre), puisse avoir des espaces de type :
X XXX ou encore X XXX XXX ou encore XX XXX XXX, ou encore XXX XXX XXX, quelque soit le chiffre affiché.

Je ne sais pas si je suis assez clair??
 
Ok je ne sais pas si ça va t'aider
Bloc de code:
let valeur = NumberFormatter()
        valeur.usesGroupingSeparator = true
        valeur.numberStyle = .currency
        valeur.locale = Locale(identifier: "fr_FR")
        let prix = valeur.string(from: 12345689)!
        print(prix)
 
Bonjour, désolé cela fait un moment que je ne me suis connecté.
Effectivement je programme bien en swift et je n'y arrive toujours pas.
 
Serait-il possible de concaténer comme en JS (voir paragraphe "le type de chaine") ?
 
Bonjour,
As-tu une erreur ?, si tu test mon exemple dans un simple Playground, ça fonctionne.
Post la partie de ton code qui pose problème.
 
Il ne faut pas essayer de bidouiller la chaine de caractères, il faut utiliser soit comme l'a proposé Diablo76 un formatter (quand tu développes un peu de persévérance ne fait pas de mal, ne pas conclure trop vite "ça ne marche pas"), soit mieux récupérer les préférences utilisateur et utiliser le séparateur de nombre choisi par l'utilisateur.
 
quand tu développes un peu de persévérance ne fait pas de mal, ne pas conclure trop vite "ça ne marche pas"

je pense qu'il ne sait pas comment adapter mon exemple dans son code, il est évident que le copier-coller ne marchera pas mais si il nous donne la portion de code qui pose problème, alors on aura plus d'éléments
 
Bonjour,
Effectivement, je ne sais pas trop comment adapter le code. Pour infos, je ne copie-colle pas le code donné. Ahah!
Comme je débute dans la programmation (j'en apprends un peu tous les jours), j'ai mis aux oubliettes cette partie pour me focaliser ailleurs. Je reviendrai bientôt: "I'll be back" (Terminator).