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

Entrée/Sortie Java Discussion :

lecture fichier et comparaison chaines de caracteres


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut lecture fichier et comparaison chaines de caracteres
    Bonjour,
    Au cours de mon programme j'ai eu un resultat vraiment etrange et je n'ai pas reussi a le corriger pourtant mon code semble correct.
    Je lis un fichier de type xml ligne par ligne et je cherche une chaine de reference.

    J'arrive donc au moment que je cherche à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Donnee    :     <sport titre="tennis">
    Reference : 	<sport titre="tennis">
    Avec donnee, la ligne de mon fichier xml et reference la ligne que je recherche.
    Et pourtant le test d'egalité entre les deux renvoit false ... auriez vous une idée?

    Je place aussi mon code de comparaison :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    	if (! ligneDonnee.equals(ligneReference))
                    	{
                    		System.out.println("Donnee    : "+ligneDonnee);
                    		System.out.println("Reference : "+ligneReference+"\n");
                    	}
     
                    	else
                    	{
                    		System.out.println("Sport trouve");
                    	}
    J'ai essayé d'enlever les tabulations egalement mais sans succes.
    Si quelqu'un a une idée je suis preneur

  2. #2
    Membre actif Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Salut

    le test d'egalité entre les deux renvoit false
    C'est normal, ils sont identique !

    voici ce que fait la condition if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String ligneDonnee = "tennis";
    String ligneReference = "tennis";
    if (! ligneDonnee.equals(ligneReference))
    //équivalent à
    if (!true)
    // équivalent à 
    if (false)

  3. #3
    Membre actif Avatar de trax44
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 300
    Points : 233
    Points
    233
    Par défaut
    Il y a pas des api qui gére le xml ? Que ça serait peut etre plus simple. Sinon je sais pas comment ton fichier est remplie, mais si un utilisateur y a acces, il suffit qu'il rajoute un espace ou il faut pas et ton test fonctionne plus.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    autant pour moi je m'etais mal exprimé dans mon premier message. En fait j'ai toujours l'affichage de Donnee et Reference qui est ma condition si les lignes sont différentes.
    Pourtant comme tu le signales elles sont identiques donc je devrais avoir "Sport trouvé" ... j'avoue ne pas comprendre

  5. #5
    Membre actif Avatar de jibbi
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    165
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 165
    Points : 205
    Points
    205
    Par défaut
    Dac

    Ajoute ca avant le if pour voir la différence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println("ligneDonnee=" + ligneDonnee + " , size=" + ligneDonnee.length());
    System.out.println("ligneReference=" + ligneReference + " , size=" + ligneReference.length());

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    ok je comprends mieux il y a un ecart de 3 entre la premiere et la seconde ce qui peut expliquer ce resultat surprenant. Maintenant à moi de trouver ou sont les espaces en trop.

    Ou alors trouver une methode pour supprimer tous les espaces et tabulations serait peut etre le mieux.

  7. #7
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    un "trim" sur ta ligne pourrais bien corriger le problème ( suppression des espaces superflux en début et fin de chaine ).

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Points : 70
    Points
    70
    Par défaut
    impeccable en effet. Merci à vous de votre aide

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

Discussions similaires

  1. Comparaisons chaines de caracteres
    Par jroman dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 21/06/2011, 14h08
  2. Comparaison chaine de caracteres
    Par philsand77 dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2010, 21h15
  3. fichier convertie en chaine de caractere
    Par floran974 dans le forum Langage
    Réponses: 1
    Dernier message: 17/06/2009, 19h02
  4. comparaison chaine de caractere
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/12/2008, 15h56
  5. Lire des fichiers texte (des chaines de caracteres) ifstream
    Par jamesleouf dans le forum SL & STL
    Réponses: 1
    Dernier message: 22/03/2006, 23h58

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