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 :

String != String


Sujet :

C#

  1. #1
    Membre très actif
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 102
    Par défaut String != String
    Bonjour,

    Je cherche à comparer deux chaines et j’étais persuadé qu'elles étaient égales. En C à partir d'un 0 on ne va pas voir plus loin et les 0 ne sont pas vraiment significatifs.

    Mais là à priori si. Donc ces deux chaines ne sont pas "égales".
    "TheFirstTask" et "TheTaskList\0\0\0\0\0\0\0".

    Pourriez-vous m'indiquer s'il existe une façon de supprimer les '\0' simplement sans faire de boucle ? Merci.

    Je viens du C et j'ai pas encore bcps de réflexes. en C#

    Cordialement

  2. #2
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Je regarderais vers cette méthode peut-être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string str1 = "TheFirstTask";
    string str2= "TheFirstTask";
     
    bool result = str1 .Equals(str2, StringComparison.Ordinal);
    Au sinon pour supprimer des caractères dans une chaine, et mieux en fin de chaine voir les méthodes Trim et TrimEnd de l'objet String
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    string str1 = "TheFirstTask";
    string str2= "TheFirstTask";
     
    bool result = str1.Trim().ToLower() .Equals(str2.Trim().ToLower());

  4. #4
    Membre très actif
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 102
    Par défaut
    Bonjour,

    Si je comprends bien j'ai deux solutions. Soit je compare en ignorant les caractères qui ne intéressent pas soit je nettoie les chaines et aprés je les compare.

    Je suis plutôt partant pour faire le ménage avant (à la création de la chaine). J'ai donc essayé le code suivant :
    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
     
    namespace toto
    {
         public partial class Form1 : Form
         {
             ....
             volatile string chaine2 = "TheNewTask\0\0\0"
             ....
     
             public Form1()
             {
                   ...
                   chaine2.Trim();
                   chaine2.TrimEnd('\0');
                   chaine2.Replace("\0", "");
             }
             .....
         }
    }
    J'ai mis un BP et j'ai espionné chaine2 à chaque ligne et le contenu de la chaine ne bouge pas. J'avoue ne pas trop comprendre.

    Je vais maintenant essayer l'autre méthode.

    Si vous avez une piste pour m'aider sur la première méthode je vous en remercie par avance.

    Cordialement

  5. #5
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Toutes (ou presque) les méthodes de la classe String, renvoient une chaine modifiée, car String est immuable (contrairement à en C où l'on peut directement modifié le contenu du char*), par conséquent comme tu ne récupères jamais le résultats de tes méthodes tu ne vois aucune modification

  6. #6
    Membre très actif
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Décembre 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 102
    Par défaut
    Merci, effectivement ça semble mieux. j'ai changé mon code en un truc qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Chaine2.Text = Chaine2.TrimEnd('\0');
    Et là oui j'ai une modification.

    Cordialement

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/01/2008, 12h00
  2. [WMI] Convertion Array of String -> String
    Par yamino dans le forum Langage
    Réponses: 7
    Dernier message: 14/11/2007, 08h42
  3. Réponses: 13
    Dernier message: 02/10/2007, 14h24
  4. Mapper une HashMap<String,String>
    Par Alec6 dans le forum Hibernate
    Réponses: 1
    Dernier message: 25/08/2006, 14h57
  5. Réponses: 8
    Dernier message: 07/04/2006, 11h18

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