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

Collection et Stream Java Discussion :

Insertion de donneés StringTokenizer dans un tableau de caractères


Sujet :

Collection et Stream Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 2
    Par défaut Insertion de donneés StringTokenizer dans un tableau de caractères
    Bonjour,

    J'ai un petit problème. J'utilise la classe StringTokenizer dans le but de récupérer tous les mots d'une zone de texte.
    J'arrive bien à afficher les mots sur la console mais le problème intervient quand je veux stocker ces mots dans un tableau.
    Etant débutante en Java, je ne comprends pas les erreurs qu' Eclipse me donne (mis à par l'indication de la ligne ).
    Voici mon code:

    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
     
    bouton1.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e){
    				StringTokenizer st = new StringTokenizer(zone2.getText());
     
    				//Déclaration d'un tableau d'une colonne et 20 lignes
    				//final String[][]tableau= new String [20][1];
    				int i=0;
    				String [] tab = new String[10]; 
    			     while (st.hasMoreTokens()) {
    			         System.out.println(st.nextToken());
    			         tab[i]=st.nextToken();
    			         i++;
    			     }
    			}
     
    		});
    et mon erreur après avoir entré "texte à récupérer dans tableau" dans ma zone de texte

    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
     
     
    texte
    récupérer
    tableau
    Exception in thread "AWT-EventQueue-0" java.util.NoSuchElementException
    	at java.util.StringTokenizer.nextToken(Unknown Source)
    	at ChatCorrect$7.actionPerformed(ChatCorrect.java:256)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Ce serait vraiment gentil de m'aider.
    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 255
    Par défaut
    tu fais appel deux fois a .nextToken() ; as-tu bien compris son fonctionnement ? essaye de faire avec un seul appel dans ta boucle pour voir ?

  3. #3
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Essaye d'utiliser la méthode Split disponible dans la classe String. Peut être que cela va te faciliter la tâche.

  4. #4
    Membre confirmé Avatar de kululu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Par défaut
    Bonjour

    Oui en effet tu utilises 2 fois nextToken()

    Je m'explique

    Regarde dans ta console tu as comme affichage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    texte
    récupérer
    tableau
    or ce que tu cherches c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    texte 
    à 
    récupérer 
    dans 
    tableau
    Donc quand tu fais
    System.out.println(st.nextToken()); -> il t'affiche "Texte"

    Ensuite tu fais
    tab[i]=st.nextToken(); -> il te stock "à"

    En gros tu ne stock pas le mot que tu affiches et du coup tu arrives au dernier mot la console affiche "tableau" mais veux stocker le next element qui existe pas

    Fais un affichage de ton tableau tu verras

    une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String str = st.nextToken()
    System.out.println(str);
    tab[i]=str;
    Et là ça marchera

Discussions similaires

  1. Insertion de données triés dans listview
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/04/2007, 15h45
  2. [Conception] Afficher les données (BDD) dans un tableau en PHP
    Par ox@na dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/09/2006, 15h24
  3. insertion dynamique de lignes dans un tableau
    Par loreleï85 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/06/2006, 17h32
  4. [Cookies] insertion de données automatique dans formulaire
    Par chouchouboy dans le forum Langage
    Réponses: 8
    Dernier message: 09/06/2006, 11h50
  5. Réponses: 7
    Dernier message: 27/01/2006, 15h57

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