Concaténer deux tableaux de type string case par case en java
Résolu
imen123
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
imen123 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
imen123 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
comment je peut concaténer deux tableaux de type string case par case en java , et finalement les affichés dan un tableau (initialement vide)
par exemple:
string t []={'1','2','3','4'};//la plaquette
string t1 []={'+','-','*'};//la plaquette
string t2 []= new string[7];
et merci d'avance :)
comment je peut concaténer deux tableaux de type string case par case en java , et finalement les affichés dan un tableau (initialement vide)
par exemple:
string t []={'1','2','3','4'};//la plaquette
string t1 []={'+','-','*'};//la plaquette
string t2 []= new string[7];
et merci d'avance :)
A voir également:
- Concaténer deux tableaux de type string case par case en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Concatener deux cellules excel - Guide
- Fusionner deux tableaux excel - Guide
- Aller à la ligne dans une case excel - Guide
3 réponses
En bouclant sur t et t1 pour récupérer chaque valeur à concaténer. (au passage '1' n'est pas une String mais un char, c'est "1" qui serait une String,)
Par contre je ne comprends pas ton sujet parce que si tu les concatènes String à String, tel que je l'interprète ça ferait 3×4=12 combinaisons pas 7 (t2 = {"1+", "1-", "1*", "2+", "2-", "2*", "3+", "3-", "3*", "4+", "4-", "4*").
Si tu veux assembler tes tableaux pour obtenir t2 = {"1", "2", "3", "4", "+", "-", "*"} (ce qui fait bien 7) tu peux utiliser la méthode statique System.arraycopy
J'espère avoir aidé, sinon précise ou reformule ton problème.
Par contre je ne comprends pas ton sujet parce que si tu les concatènes String à String, tel que je l'interprète ça ferait 3×4=12 combinaisons pas 7 (t2 = {"1+", "1-", "1*", "2+", "2-", "2*", "3+", "3-", "3*", "4+", "4-", "4*").
Si tu veux assembler tes tableaux pour obtenir t2 = {"1", "2", "3", "4", "+", "-", "*"} (ce qui fait bien 7) tu peux utiliser la méthode statique System.arraycopy
J'espère avoir aidé, sinon précise ou reformule ton problème.
normalement on obtient un tableau de 7 case :
1+2-3*4
1+2-3*4
c'est à dire 3 compteurs chacun sur un tab comme ça :
string t []={"1","2","3","4"};
string t1 []={"+","-","*"};
string t2 []= new string[7];
for(int i=0; i<t[4]; i++)
{
for (int j=0;j<t[3];j++)
{
for (int k=0;k<7;k++)
{
t2[k]=t[i]+t1[j];
System.out.print( t2[k]+"|");
}
}
}
mais ça ne marche pas
désolé mais je suis débutante en java :(
et merci bien pour votre patience :)
string t []={"1","2","3","4"};
string t1 []={"+","-","*"};
string t2 []= new string[7];
for(int i=0; i<t[4]; i++)
{
for (int j=0;j<t[3];j++)
{
for (int k=0;k<7;k++)
{
t2[k]=t[i]+t1[j];
System.out.print( t2[k]+"|");
}
}
}
mais ça ne marche pas
désolé mais je suis débutante en java :(
et merci bien pour votre patience :)
Hou que c'est compliqué !
Déjà les String c'est avec des majuscules !
Ensuite, tous les t[i] c'est aussi des String, alors tu peux pas faire des comparaisons avec des int, comme dans ton i<t[4], d'autant t[4] plantera puisque la taille de t est de 4, donc on la case 4 n'existe pas.
Déjà les String c'est avec des majuscules !
Ensuite, tous les t[i] c'est aussi des String, alors tu peux pas faire des comparaisons avec des int, comme dans ton i<t[4], d'autant t[4] plantera puisque la taille de t est de 4, donc on la case 4 n'existe pas.
for (int i=0; i<7; i++) t2[i] = (i%2==0) ? t[i/2] : t1[i/2];
t[4] correspond à l'élément à l'index 4 de t (qui n'existe pas, ce qui provoque un IndexOutOfBoundsException parce que tu demandes une valeur hors bornes).
Ce qu'il te faut c'est la longueur de t, que tu obtiens par l'attribut length du tableau. Soit
Si tu réfléchis sans chercher à placer des index dans un premier temps :
1) tu prends t[0] pour récupérer "1" pour le mettre dans t2[0]
2) tu prends ensuite t1[0] pour récupérer "+" pour le mettre dans t2[1]
3) tu prends ensuite t[1] pour récupérer "2" pour le mettre dans t2[2]
4) tu prends ensuite t1[1] pour récupérer "-" pour le mettre dans t2[3]
etc.
Après cette réflexion tu remarques que :
- ce qui augmente à chaque fois c'est l'index du tableau de destination. Et que dans le même temps, l'index pour le tableau de provenance est toujours la moitié de cet index qui augmente régulièrement.
En formalisant avec une variable, appelons-la "truc" :
1) tu prends t[truc/2] pour le mettre dans t2[truc]
2) tu prends t1[truc/2] pour le mettre dans t2[truc+1]
=> en augmentant truc de 2 en 2
Ou tu peux le voir comme
- ce qui augmente une fois sur deux, c'est un index sur les tableaux d'origine. Et que dans le même temps, l'index de destination de chiffres est égal au double, et l'index de destination des symboles est égal au double plus un.
En formalisant avec un variable, appelons-la "muche" :
1) tu prends t[muche] pour le mettre dans t2[2*muche]
2) tu prends t1[muche] pour le mettre dans t2[2*muche+1]
en augmentant muche de 1 en 1
Ce qu'il te faut c'est la longueur de t, que tu obtiens par l'attribut length du tableau. Soit
t.length
Si tu réfléchis sans chercher à placer des index dans un premier temps :
1) tu prends t[0] pour récupérer "1" pour le mettre dans t2[0]
2) tu prends ensuite t1[0] pour récupérer "+" pour le mettre dans t2[1]
3) tu prends ensuite t[1] pour récupérer "2" pour le mettre dans t2[2]
4) tu prends ensuite t1[1] pour récupérer "-" pour le mettre dans t2[3]
etc.
Après cette réflexion tu remarques que :
- ce qui augmente à chaque fois c'est l'index du tableau de destination. Et que dans le même temps, l'index pour le tableau de provenance est toujours la moitié de cet index qui augmente régulièrement.
En formalisant avec une variable, appelons-la "truc" :
1) tu prends t[truc/2] pour le mettre dans t2[truc]
2) tu prends t1[truc/2] pour le mettre dans t2[truc+1]
=> en augmentant truc de 2 en 2
Ou tu peux le voir comme
- ce qui augmente une fois sur deux, c'est un index sur les tableaux d'origine. Et que dans le même temps, l'index de destination de chiffres est égal au double, et l'index de destination des symboles est égal au double plus un.
En formalisant avec un variable, appelons-la "muche" :
1) tu prends t[muche] pour le mettre dans t2[2*muche]
2) tu prends t1[muche] pour le mettre dans t2[2*muche+1]
en augmentant muche de 1 en 1
Bonsoir imen123,
Pas boucler sur les trois tableau.
Le principe est de boucler sur les deux tableaux avec une seule boucle et de remplir le troisième au fur et à mesure de ton avancement. Quand je dis une seule boucle, il faut être certain que ton deuxième tableau aie la même taille que ton premier tableau mais -1 !. Si c'est toujours le cas, alors tu peux faire:
AJUSTE_TAILLE(t2(TAILLE(t) + TAILLE(t1)));
it = 0;
it1 = 0;
POUR (i=0 ; i<TAILLE(t2) ; i++)
t2(i)=t(it);
it++;
t2(i)=t(it1);
it1++;
FIN POUR i
t2(i)=t(it);
Pas boucler sur les trois tableau.
Le principe est de boucler sur les deux tableaux avec une seule boucle et de remplir le troisième au fur et à mesure de ton avancement. Quand je dis une seule boucle, il faut être certain que ton deuxième tableau aie la même taille que ton premier tableau mais -1 !. Si c'est toujours le cas, alors tu peux faire:
AJUSTE_TAILLE(t2(TAILLE(t) + TAILLE(t1)));
it = 0;
it1 = 0;
POUR (i=0 ; i<TAILLE(t2) ; i++)
t2(i)=t(it);
it++;
t2(i)=t(it1);
it1++;
FIN POUR i
t2(i)=t(it);
c'est pour ça je veux concaténer case par case:
la 1er case de 1er tab
la 2eme case de tab
jusqu'à la fin de 1er tab puisqu'il contient des case supérieure au 2eme
SVP est il y a une méthode qui peut m'aider