bonjour, j'ai un souci avec un mini-projet ( qu eje dois rendre ce soir).
il s'agit de convertir un tableau de char en tableau de string; j'ai ecris le code mais je n'arrive pa à ecrire le dernier mot du tableau ( !!!)
peu-être ai-je trop le nez collé dessus mais ça urge
si quelqu'un peut regarder. Merci d'avance.
lucck

voici le 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Projet_2_TabCharVersTabString {
static int cmptNbMot(char []t){
       int NbMot=0;
       for(int i =0; i<t.length; i++){
            if((t[i]== ' ')&&(t[i]+1)!= ' '){
               NbMot=NbMot+1;
            }
           // else if ( t[i]!=' '){
             //i++;
      }
      return( NbMot+1);
}
public static void main ( String args []){
    char[] tab1 ={'b','o','n','j','o','u','r',' ','c','e','c','i',' ','e','s','t',' ','u','n',' ','t','a','b','l','e','a','u'};
    String s= " ";
    char a = ' ';
     // affichage du tableau de caractères tab1 :
    for(int j=0; j<tab1.length; j++){
        Terminal.ecrireString(" "+tab1[j]);
    }
    Terminal.sautDeLigne();
    Terminal.ecrireStringln("la longueur du tableau de char est : " + tab1.length);
    Terminal.ecrireStringln(" le nb de mot est : " +cmptNbMot(tab1));
    String [] tab3 =new String [cmptNbMot(tab1)];
    int j=0;
    for(int i=1; i<cmptNbMot(tab1); i++){
       while(tab1[j]!=a && j <tab1.length){
             s= s+ tab1[j];
             tab3[i]=s;
             j++;
       }
       Terminal.ecrireStringln(" glurp "+ i + tab3[i]);
       s=" ";
       while ( tab1[j]==a && j<tab1.length){
            j++;
       }
   }
}
}
Résultat de la compil : avec i =1, das la boucle for :

run-single:
b o n j o u r c e c i e s t u n t a b l e a u
la longueur du tableau de char est : 27
le nb de mot est : 5
glurp 1 bonjour
glurp 2 ceci
glurp 3 est
glurp 4 un
BUILD SUCCESSFUL (total time: 0 seconds)

Il me manqu edonc soit un dernier tour soit une case dans le tableau tab3 pour qu ele mot "tableau " s'affiche...


si je fais i = 0 , pour rajouter un tour, ça ne passe pas :

run-single:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 27
b o n j o u r c e c i e s t u n t a b l e a u
la longueur du tableau de char est : 27
le nb de mot est : 5
at Nfa001_Bis.Projet_2_TabCharVersTabString.main(Projet_2_TabCharVersTabString.java:28)
glurp 0 bonjour
glurp 1 ceci
glurp 2 est
glurp 3 un
Java Result: 1
BUILD SUCCESSFUL (