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 :

Probleme taille tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut Probleme taille tableau
    voila, bonsoir a tous

    je suis stressé car je dois rendre un travail demain et qu'un probleme vient d'apparaitre devant la ligne d'arrivée


    je créer un tableau de char de 30 elements, je lis une ligne de texte, dans un fichier, et met le contenu dans le tableau (passant par un String, puis par la methode String.toCharArray();


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    char [] tab = new char [30];
     
            while(source.hasNext())
            {
            ligne = source.nextLine();
            tab = ligne.toCharArray();
            }
    la ligne lue dans le fichier contient 21 elements (lettre + espace)

    donc 21 elements mits dans un tableau de 30


    si j'affiche la taille de mon tableau, cela affiche 21 et pas 30

    mon tableau a retreci



    de plus,j'envoie mon tableau a une fonction, je fais un while avec comme condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int i=0;
    while (i<tab.length){
    System.out.println(i);
    i++;
    si j'ecris tab.length le compilateur rale, mais si je met while(i<20) il ne rale pas

    or apparament mon tableau fait 21 case, donc 21 ou length c'est censé etre idem

    help

  2. #2
    Candidat au Club
    Inscrit en
    Août 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 3
    Par défaut
    Salut,

    La méthode toCharArray() alloue un tableau de caractères dont la taille est la longueur de la String ("ligne" dans ton cas). Donc cela ne sert à rien de fixer la taille du tableau.

    Ceci devrait suffire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char [] tab;
     
    while(source.hasNext())
    {
    	ligne = source.nextLine();
    	tab = ligne.toCharArray();
    }
    Dans ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int i=0;
    while (i<tab.length){
    System.out.println(i);
    i++;
    Sauf l'accolade fermante manquante, si "tab" est toujours un tableau alors tab.length ne devrait poser aucun problème.

    Si cela ne suffit pas, poste ton code.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Par défaut
    Merci pour ta réponse, tu as répondu a ma question

    cependant, ne mettre que char [] tab; ne poserait il pas probleme?

    char [] tab est un pointeur, et new char [30] alloue un espace mémoire, ce qui permet donc au tab de pointer sur l'espace mémoire réservé


    je ne sais pas vraiment, car j'ai essayer comme tu m'as conseillé mais le compilateur ne veut pas compilé, tab n'ayant pas été initialisés

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Citation Envoyé par max_1988 Voir le message
    je ne sais pas vraiment, car j'ai essayer comme tu m'as conseillé mais le compilateur ne veut pas compilé, tab n'ayant pas été initialisés
    Initialise le alors !


  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 497
    Par défaut
    Salut ...

    et (tab.lenght -1) ça donne quoi ? bon je ne sais pas comment tu remplies ton tab, mais le problème ne vient pas de la déclaration de ton tableau, mais je pense plutôt de la manière dont tu le remplies

    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
    public class test {
     
    	public static void main() {
     
                    char[] tab = new char[30];
    		int i = 0;
     
    		while (i <= tab.length-1) {
    			tab[i] = (char) i;
    			i++;
    		}
     
    		i = 0;
    		while (i <= tab.length) {
    			System.out.println(i);
    			i++;
    		}
    	}
    }
    ... m'enfin bon. j'ai dû mal comprendre

Discussions similaires

  1. probleme taille de tableau
    Par Ganondorf dans le forum Débuter
    Réponses: 2
    Dernier message: 25/10/2010, 16h01
  2. Réponses: 2
    Dernier message: 26/08/2008, 14h32
  3. besoin d'aide probleme taille tableau
    Par zhao dans le forum C++
    Réponses: 8
    Dernier message: 28/09/2006, 09h14
  4. probleme de tableau dynamique
    Par El Krotal dans le forum C
    Réponses: 9
    Dernier message: 25/06/2004, 17h00
  5. [C#] Probleme de tableau
    Par djsbens dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/06/2004, 14h04

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