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

Langage Java Discussion :

Identification d'une chaine de caractère null


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Identification d'une chaine de caractère null
    Bonjour,

    Mon programme lit dans un fichier texte des ligne de données du style :

    ********** Node data **********

    Node Map Ground Area Connection Floor Chamber Roof Shaft Flood < Flood Area 1> < Flood Area 2>
    Ref Reference Level Density Level Area Level Area Type Level Area Level Area
    (m AD) (ha) (m AD) (m2) (m AD) (m2) (m AD) (ha) (m AD) (ha)
    A 0094500594 19.10 20.000 0.0 16.500 1.0 16.500 1.0 0 19.10 0.00 119.10 0.00



    Je lis la ligne et je la stock dans un String[]. Il me faut enlever les espaces pour ne pas avoir des cases remplies avec du vide.
    J'utilise donc la fonction ligne.split("\\s). J'ai également essayer string tokenizer....mais ca ne marche pas .
    J'obtiens un vecteur comportant les blancs.
    Je pense donc que c'est un probleme de meta caractere ... que ce ne sont peut etre pas de "simples espaces" . Je ne sais pas
    En piece jointe, le fichier qui me pose probleme. C'est un fichier format txt.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Points : 823
    Points
    823
    Par défaut
    Quand tu dis que tu veux supprimer les espaces en utilisant split("\\s").

    Pourquoi tu mets pas ca plutôt split(" ") ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    j'ai essayé split("\\ ") , split ("\\s") , split(" ") et stringTokenizer mais cela produit le meme resultat chaque espace m'occupe une case de mon vecteur String[].
    C'est peut être que ce ne sont pas vraiment des espaces......mais je n'ai pas réussi a identifier leur nature


    merci

  4. #4
    Membre éclairé Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Points : 823
    Points
    823
    Par défaut
    Tu peux mettre ton code stp.

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     public void ecritureNoeudHM(Noeud NOEUD) throws IOException {
     
      System.out.println("Début de la fonction ecrireNoeudHM   Hydroworks Mouse \n ");
     
      System.out.println("Création du flux de lecture \n");
     
      fluxlecture = new FileReader(fichierPRN);
     
      System.out.println("Fin de création du flux de lecture \n");
     
      BufferedReader tamponLecture = new BufferedReader(fluxlecture);
      String ligne;
     
      fichierDestination = new String(chemDest1.getText());
      fichierDestination = fichierDestination.trim();
         writer = new FileWriter(fichierDestination);  
     
     
         //Chapeau des noeuds
         writer.write("[MOUSE_NODES]"+"\r\n");
         writer.write("   SYNTAX_VERSION = 2"+"\r\n");
         writer.write("   UNIT_TYPE = 1"+"\r\n");
         writer.write("   NODEHeader = 'NODEID', 'TYPENO', 'X', 'Y', 'DIAMETER', 'INVERTLEVEL', 'GROUNDLEVEL', 'WATERLEVEL',"+"\r\n"); 
         writer.write("'OUTLETSHAPENO', 'DATASETID', 'RMNODETYPENO', 'RMPRESSURELEVEL', 'TOPTYPENO', 'BUFFERPRESSLEVEL', 'RELWEIRCOEFF',"); 
         writer.write("'DQTN_GROUNDLEVEL', 'DQTN_INVERTLEVEL', 'DQTN_DIAMETER'"+"\r\n");
     
         while((ligne=tamponLecture.readLine())!=null)
       {
          cont3++;
          System.out.println("Le nombre de boucles est de : "+cont3+"\r\n");
           //mise a 1 du compteur cont1 quand on rencontre m AD 
     
          if(ligne.startsWith("                       (m AD)    (ha)             (m AD)    (m2)  (m AD)    (m2)        (m AD)    (ha)  (m AD)    (ha)"))
             {
              System.out.println(" LA LIGNE DES UNITES  EST :"+ligne+"\n");
              cont1=1;
              System.out.println(" LE COMPTEUR 1 A BIEN ETE MIS A : "+cont1+"\n");
             }
     
             //mise a 1 du compteur cont2 quand on rencontre la fin du bloc noeud
     
         /*
          if(ligne.startsWith("  Nodes marked '*' are outfalls"));
          {
           System.out.println(" la fin du bloc noeud a ete atteinte "+"\n");
           System.out.println(" la DERNIERE ligne lue est : "+ligne);
           cont2=1;
          }
          */
          if(cont1==1)
     
          {
           if (ligne.charAt(23)!='(')
     
           {
            if ((ligne.charAt(8)!='*'))
            System.out.println(" 8 ME CARACTERE -------> PAS EXUTOIRE "+"\n");
            {
             if (ligne.charAt(30)!='P')
             System.out.println(" 30 EME CARACTERE-----------> PAS POND "+"\n");
              { 
               if (ligne.charAt(30)!='L')
                 {
                  System.out.println("DEBUT DE L'ECRITURE DES NOEUDS"+"\n");
                  //les espaces sont les séparateurs
                  System.out.println(" La LIGNE EST :"+ligne+"\n");
                  System.out.println(" le 23 eme CARACTERE EST :"+ligne.charAt(23)+"\n");
                  noeudTypeHw = ligne.split("\\ ");

  6. #6
    Membre éclairé Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Points : 823
    Points
    823
    Par défaut
    Là, je sais pas trop quoi te répondre avec ce que tu as mis.

    Dans le premier post tu disais que tu stocké ta ligne dans une String[]. Il manque manque peut être un bout de code. Si c'est pas le cas, tanpis et alors c'est à quel moment que tu veux enlever les espaces ?

  7. #7
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Ton code n'est pa compilable.

    priez de livrer un code minimum qui reproduit l'erreur et qui est compilable.


  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bon tant pis -------ca restera dans mon annuaire des codes étranges au fonctionnement non moins énigmatique.

    quand meme

  9. #9
    Membre éclairé Avatar de warwink
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    650
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 650
    Points : 823
    Points
    823
    Par défaut
    Mouai y'en a qui essayent de s'investir d'autres pas ...

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    mouai y en a aussi qui ont des chefs a la con avec des delais de ouf
    alors tant pis ........

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/12/2013, 16h40
  2. [VBA] remplacer null par une chaine de caractère
    Par Bernard123 dans le forum VBA Access
    Réponses: 8
    Dernier message: 20/04/2007, 16h35
  3. Réponses: 9
    Dernier message: 17/01/2003, 11h45
  4. Lire Une Chaine De Caractères
    Par Jonathan_Korvitch dans le forum C
    Réponses: 12
    Dernier message: 07/01/2003, 05h37
  5. Réponses: 2
    Dernier message: 06/12/2002, 07h50

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