IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#]string.Format: ajout de caractères avant une string


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Septembre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Septembre 2002
    Messages : 69
    Points : 63
    Points
    63
    Par défaut [C#]string.Format: ajout de caractères avant une string
    Bonjour,

    Je cherche comment ajouter des caractères (en l'occurence des 0) devant une chaine.

    Concrétement je voudrai formater une chaine sur 10 caractères en ajoutant des zéros en début de chaine.

    J'ai cherché avec string.Format mais je ne parviens qu'à rajouter des epaces !! {0:10}

    Merci

  2. #2
    Membre habitué
    Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 156
    Points
    156
    Par défaut
    Salut !

    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        class MainClass
        {
            public MainClass(string s)
            {
                int taille = s.Length;
                int reste = 10 - taille;
                string serie = new String('0',reste);
                Console.WriteLine(serie + s);
                Console.ReadLine();
            }
            
            public static void Main(string[] args)
            {
                MainClass m = new MainClass("blahblah");
            }
        }

  3. #3
    Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Septembre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Septembre 2002
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Merci pour ta réponse mais je cherchai une solution avec string.Format.

    Je laisse donc le post ouvert

    Ceci dit ca marche aussi comme ca

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par Jones
    Merci pour ta réponse mais je cherchai une solution avec string.Format
    Ce n'est pas possible d'ajouter des 0 sur une chaîne avec le String.Format. Ce n'est possible qu'avec les types numérique à ma connaissance.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string n = String.Format("{0:0000}", 123);
    Tu peux faire ce que tu souhaites avec un StringBuilder, en plus de la méthode indiquée par Bapt.ice, qui est en général plus rapide pour ce genre de traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string maChaine = "salut"; 
    StringBuilder builder = new StringBuilder(maChaine);
    string nouvelleChaine = builder.Insert(0, "0", 10 - maChaine.Length).ToString();
    Pas de questions techniques par MP

  5. #5
    Membre chevronné

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 758
    Points : 2 084
    Points
    2 084
    Par défaut
    Ici tu as peux-être ta solution : http://idunno.org/displayBlog.aspx/2004071401

    Il semblerait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0,10}ABC", "123"); // Résultat : "       123ABC"
    Complète par 10 blancs à gauche.

    Avec l'utilisation de -10 à la place de 10, tu complètes à droite.

    Sinon tu as aussi les méthodes String.PadLeft() ou padRight().

    Ah oups ce sont des Zéros pas des espaces, Mea Culpa.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 48
    Points : 54
    Points
    54
    Par défaut
    Salut,

    Comme l'a dit blbird, utilises la méthode String.PadLeft

    En l'occurence ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String.PadLeft(10, "0"c)
    A+

  7. #7
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par arno2000
    Salut,

    Comme l'a dit blbird, utilises la méthode String.PadLeft

    En l'occurence ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.PadLeft(10, "0"c)
    Effectivement, je ne connaissais pas

    Par contre notre ami travaille en C#, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string nouvelleChaine = maChaine.PadLeft(10, '0');
    Pas de questions techniques par MP

  8. #8
    Membre du Club
    Profil pro
    Informaticien
    Inscrit en
    Septembre 2002
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Septembre 2002
    Messages : 69
    Points : 63
    Points
    63
    Par défaut
    Moi non plus je ne connaissai pas PadLeft et string.Format ne permet de n'ajouter que des zéros.

    StormimOn -> Effectivement la méthode de Bapt.ice fonctionne parfaitement et est peut être plus rapide . Néanmoins je reste partisan de l'utilisation de méthodes existante pour une compréhension du code plus simple. Ca n'engage personne evidemment, c'est mon point de vue perso

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Remplacer des caractères dans une string
    Par jexl dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2007, 22h26
  2. Convertir une string en tableau de caractères
    Par alainpeniche dans le forum C++
    Réponses: 4
    Dernier message: 06/01/2007, 20h00
  3. [deb]Accéder aux caractères d'une string
    Par Raideman dans le forum C++
    Réponses: 4
    Dernier message: 22/08/2006, 15h28
  4. Connaitre le jeu de caractères d'une String ?
    Par dedz dans le forum Langage
    Réponses: 7
    Dernier message: 29/06/2006, 14h15
  5. Réponses: 6
    Dernier message: 24/07/2003, 12h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo