bonjour à tous
je propose de fusionner 3 tableaux de chaines de caractère:
premier tableau: tabetab de taille listetab.size() rempli à partir d'un fichier xml
deuxième tableau: tabetude de taille listetude.size() rempli à partir du même fichier xml
premier tableau: tabdat1 de taille taille1 rempli à partir du même fichier xml
j'ai fait ce 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
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
 
tabFinal=new String[listEtab.size()+listEtude.size()+taille1];
int min = Math.min(listEtab.size(),listEtude.size() );
int min1 =Math.min(min,taille1);
 
		int tfinal = listEtab.size() + listEtude.size()+taille1;
 
int positionInFinal = 0;
		// ici on copie les 2 tableaux en alternance
		for (int i = 0; i < min1; i++) {
            if (tabetab[i]!=null)
            {tabFinal[positionInFinal++] = tabetab[i];}
            else {tabFinal[positionInFinal++]="";}
            if (tabetude[i]!=null)
            {tabFinal[positionInFinal++] = tabetude[i];}
            else {tabFinal[positionInFinal++]="";}
            if (tabdat1[i]!=null)
            {tabFinal[positionInFinal++]=tabdat1[i];}
            else {tabFinal[positionInFinal++]="";}
        }
if (min1==listEtab.size()){
    for (int i = min; i < Math.min(listEtude.size(),taille1); i++) {
			tabFinal[positionInFinal++] = "";
            if (tabetude[i]!=null)
            {tabFinal[positionInFinal++] = tabetude[i];}
            else {tabFinal[positionInFinal++]="";}
            if (tabdat1[i]!=null)
            {tabFinal[positionInFinal++]=tabdat1[i];}
            else {tabFinal[positionInFinal++]="";
		}
 
 
}
    if ((Math.min(listEtude.size(),taille1))==listEtude.size()){
    for (int i = listEtude.size(); i < tfinal; i++) {
		tabFinal[positionInFinal++]="";
        tabFinal[positionInFinal++]="";
           if (tabdat1[i]!=null)
            {tabFinal[positionInFinal++]=tabdat1[i];}
            else {tabFinal[positionInFinal++]="";
		}}
}
else{
   for (int i = taille1; i < tfinal; i++) {
		tabFinal[positionInFinal++]="";
        if (tabetude[i]!=null)
            {tabFinal[positionInFinal++]=tabetude[i];}
            else {tabFinal[positionInFinal++]="";
		}
        tabFinal[positionInFinal++]="";}
 
}
}
if (min1==listEtude.size()){
    for (int i = min; i < Math.min(listEtab.size(),taille1); i++) {
		if (tabetab[i]!=null)
            {tabFinal[positionInFinal++] = tabetab[i];}
            else {tabFinal[positionInFinal++]="";}
         tabFinal[positionInFinal++]="";
            if (tabdat1[i]!=null)
            {tabFinal[positionInFinal++]=tabdat1[i];}
            else {tabFinal[positionInFinal++]="";
		}
 
 
}
if ((Math.min(listEtab.size(),taille1))==listEtab.size()){
    for (int i = listEtab.size(); i < tfinal; i++) {
		tabFinal[positionInFinal++]="";
        tabFinal[positionInFinal++]="";
           if (tabdat1[i]!=null)
            {tabFinal[positionInFinal++]=tabdat1[i];}
            else {tabFinal[positionInFinal++]="";
		}}
}
else{
   for (int i = taille1; i < tfinal; i++) {
		if (tabetab[i]!=null)
            {tabFinal[positionInFinal++]=tabetab[i];}
            else {tabFinal[positionInFinal++]="";
		}
       tabFinal[positionInFinal++]="";
 
        tabFinal[positionInFinal++]="";}
 
}
 
}
if (min1==taille1){
    for (int i = min; i < Math.min(listEtab.size(),listEtude.size()); i++) {
		if (tabetab[i]!=null)
            {tabFinal[positionInFinal++] = tabetab[i];}
            else {tabFinal[positionInFinal++]="";}
       if (tabetude[i]!=null)
            {tabFinal[positionInFinal++] = tabetude[i];}
            else {tabFinal[positionInFinal++]="";}
        tabFinal[positionInFinal++] = "";
 
 
}
if ((Math.min(listEtab.size(),listEtude.size()))==listEtab.size()){
    for (int i = listEtab.size(); i < tfinal; i++) {
		tabFinal[positionInFinal++]="";
        if (tabetude[i]!=null)
            {tabFinal[positionInFinal++]=tabetude[i];}
            else {tabFinal[positionInFinal++]="";
		}
        tabFinal[positionInFinal++]="";
           }
}
else{
   for (int i = listEtude.size(); i < tfinal; i++) {
		if (tabetab[i]!=null)
            {tabFinal[positionInFinal++]=tabetab[i];}
            else {tabFinal[positionInFinal++]="";
		}
       tabFinal[positionInFinal++]="";
 
        tabFinal[positionInFinal++]="";}
 
}
}
quelque soit le fichier xml qui est en entrée ce code génère une exception
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
S'il vous plaît aidez moi à régler ce problème.
Je compte sur vous.
Cordialement