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 :

Java Probleme avec line.trim().split("\t");


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut Java Probleme avec line.trim().split("\t");
    Bonjour j'ai quelque petit probleme,
    En fait je dois recuperer les donnees d'un fichier, ligne par ligne.
    Les fichier que j'ai en entrees sont de ce type la (voir piece jointe ci dessous)
    Chlamydia abortus S26 3_Amino acid biosynthesis.txt

    Je dois recuperer pour chaque ligne les informations, et inserer ces infos dans un vecteur puis creer un vecteur de vecteur.
    Le probleme c'est que je dois recuperer chaque mot de la ligne sauf que l'espace entre chaque mots est different. Du coup soit je recuperer la ligne entiere sans avoir trie les donnees, soit je recupere trois mots au lieu d'un.
    J'ai utilise differents line.trim().split() :
    line.trim().split("/t");
    line.trim().split(" +");
    line.trim().split(" ");

    Mais j'arrive toujours pas a recuperer ma ligne mots par mots>
    Je debute donc j'ai un peu de mal , je suppose que c'est un truc tout simple.
    Je joint le bout de code que j'ai fait

    Merci
    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
     
    	public static Vector creationVectorofVector (String file)
    	{
    		Vector table = new Vector();  //vector of vector
    		Vector row = new Vector();
     
    		try
    		{
    			FileReader file_read=new FileReader(file);
    			BufferedReader br=new BufferedReader(file_read);
    			String line;
     
    			while ((line=br.readLine())!=null)
    			{			
    				//read the file into the vector v
    				Vector v= FileUtilities.readFile2Vector(file);
     
    				for (int i=1; i<v.size(); i++)
    				{	
    					line=(String)v.get(i);
    					String[] words = line.trim().split("\t");
    					//String[] words = line.split("\t");
     
    					String TIGR_locus = words[0];
    					System.out.println("words[0]: "+words[0]);
    					String primary_locus = words[1];
    					String primary_common_name = words[2];
    					String primary_gene_symbol = words[3];
    					String primary_5end = words[4];
    					String primary_3end = words[5];
    					String genbankID = words[6];
    					String mainRole = words[7];
    					String subRole = words[8];
     
    					row.add(TIGR_locus);
    					row.add(primary_locus);
    					row.add(primary_common_name);
    					row.add(primary_gene_symbol);
    					row.add(primary_5end);
    					row.add(primary_3end);
    					row.add(genbankID);
    					row.add(mainRole);
    					row.add(subRole);
     
    					table.add(row);
    					row=new Vector();
    					//System.out.println("table :   "+table);
    				}	
     
    			}
    			System.out.println("out loop");
    		}
    		catch (Exception e) 
    		{ 
    			System.err.println("error 111 777 = " + e.toString()); 
    		}
    		return table;
    	}

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Tu as oublié de doubler le '\'
    Essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] words = line.trim().split("\\t");
    Utilise plutôt le pattern '\s'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     String[] words = line.trim().split("\\s");
    Une petite remarque, si tu as le choix, prefère les List aux Vector, et si tu utilise Java 5 utilise les générics .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre émérite Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Par défaut
    Pourquoi n'utilises tu pas une classe permettant de définir les éléments de ta ligne ? Ca t'éviterait ainsi les listes de listes. Tu aurais plutôt des listes d'objets (bien qu'une liste en soit un ). Et ca serait beaucoup plus facile à gérer. Mais bon, c'est un point de vue personnel, t'en fais ce que tu veux

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut
    Merci pour votre aide,
    Desole de repondre aussi tard mais ca fait 3jours que mon tuteur me lache plus, et comme on avait laisse cette erreur de cote j'avais oublie.

    J'ai essaye avec le "\\t" mais ca change pas, l'erreur se genere toujours.
    Sinon c'est vrai que faire des list c'est pas une mauvaise idee, je vais y travailler...

    Merci encore,

    Desole d'ecrire sans accents mais j'ai pas un clavier francais mais anglais...

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par benzh
    J'ai essaye avec le "\\t" mais ca change pas, l'erreur se genere toujours.
    Quelle erreur ????

    a++

    PS : Dans ce cas il est inutile de douler les \\ même si cela fonctionnerai, car \t représente bien le caractère TABULATION (ce que l'on souhaite)...

  6. #6
    Membre éprouvé
    Inscrit en
    Juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 74
    Par défaut
    la ligne suivante devrait te permettre te stocker tous les mots de ta ligne dans un tableau temporaire (ici on elimine tous les types d'espaces normalement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String[] tmp = line.trim().split("(\\s)+");

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Par défaut
    Pardon mais j'etais partis en week end prolonge,

    Merci pour les dernieres informations de drixfkc, ca marche correctement et sans erreur.

    merci encore

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

Discussions similaires

  1. 3D en Java. Problème avec les textures !
    Par dotrungtien dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/04/2006, 19h43
  2. Debutant en JAVA, problème avec 1er programme
    Par Gymerus dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 07/09/2005, 12h10
  3. Réponses: 2
    Dernier message: 30/08/2004, 14h48

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