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 :

l'espace en trop [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Par défaut l'espace en trop
    Bonjour,
    j'ai fait un code en c# , pour supprimer toutes les espaces en trop;
    mais ca marche pas ,
    Pourquoi ?
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication6
    {
        class Program
        {
            static void Main(string[] args)
            {
                int i = 0;
                string a = "       Bonne    nouvelle      dans la lutte contre la          maladie d’Alzheimer.    ";
                //a = "Bonne nouvelle dans la lutte contre la maladie d’Alzheimer.";
                while (i < a.Length)
                {
                    if (a[i] == ' ')
                    {
                          int j = i + 1;
                        if (a[j] == ' ')
                        {
                            while (a[j] == ' ')
                               {
                                a = a.Replace(a[j], '\0');
                                j = j + 1; ;
     
                               }
                            i = j;
                            }
                        else i++;
                    }
                    else i++;
     
                }
                Console.WriteLine(a);
                Console.ReadKey();
            }
        }
    }
    Merci de m'aider.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Par défaut
    string a = " ________Bonne ______ nouvelle _________ dans la lutte contre la maladie d’Alzheimer. _______ ";


    ------->

    a = "Bonne nouvelle dans la lutte contre la maladie d’Alzheimer.";

  3. #3
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Bonjour,

    astuce très simple et efficace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = string.Join(" ", a.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries));
    Bon dév.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 44
    Par défaut
    Mercccccccccci;
    sisqo60 ,
    tomlev ,
    ça marche

  5. #5
    Membre Expert Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Par défaut
    Je me suis dit qu'utiliser les Regex serait bien plus optimisé, mais en faisant le petit test sur la chaine donnée en exemple et une chaine beaucoup plus longue, je me suis rendu compte que passer par un split/join est 7/8 fois plus rapide que les Regex.
    Des idées du pourquoi?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par sisqo60 Voir le message
    Je me suis dit qu'utiliser les Regex serait bien plus optimisé, mais en faisant le petit test sur la chaine donnée en exemple et une chaine beaucoup plus longue, je me suis rendu compte que passer par un split/join est 7/8 fois plus rapide que les Regex.
    Des idées du pourquoi?
    J'ai pas encore fait le test, mais ça peut s'expliquer de plein de façons différentes... Peux-tu montrer le code de ton test ? Par exemple, la regex sera sans doute plus lente la première fois, mais si tu recommences c'est possible qu'elle soit plus rapide, car elle est conservée en cache.

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Regex.Replace(a, @"\s+", " ").Trim();

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

Discussions similaires

  1. un espace de trop dans une somme
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 11/10/2008, 10h57
  2. Un espace en trop avec <object>
    Par visiwi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 31/08/2008, 20h55
  3. [HTML] Un espace en trop dans une frame
    Par Jim_Nastiq dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/05/2006, 11h58
  4. [String]effacer espaces en trop
    Par showlap1 dans le forum Langage
    Réponses: 9
    Dernier message: 24/11/2005, 17h40
  5. [HTML] espaces en trop
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/11/2005, 20h44

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