Concaténer deux tableaux de type string case par case en java
Résolu/Fermé
imen123
Messages postés
13
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2012
-
30 nov. 2012 à 20:59
imen123 Messages postés 13 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 2 décembre 2012 - 30 nov. 2012 à 23:25
imen123 Messages postés 13 Date d'inscription dimanche 18 novembre 2012 Statut Membre Dernière intervention 2 décembre 2012 - 30 nov. 2012 à 23:25
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 football - Télécharger - Jeux vidéo
- Aller à la ligne dans une case excel - Guide
- Concatener deux cellules excel - Guide
- Fusionner deux tableaux excel - Guide
3 réponses
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
Modifié par bizu53 le 30/11/2012 à 21:42
Modifié par bizu53 le 30/11/2012 à 21:42
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.
imen123
Messages postés
13
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2012
30 nov. 2012 à 21:56
30 nov. 2012 à 21:56
normalement on obtient un tableau de 7 case :
1+2-3*4
1+2-3*4
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
30 nov. 2012 à 22:32
30 nov. 2012 à 22:32
Ah je n'aurais jamais pensé à un exercice qui fasse faire ça.
Avec un indice pour parcourir les deux tableaux, tu prends alternativement la String de l'un et la String de l'autre (avec le cas particulier de l'index 3 qui finit sur le chiffre).
Avec un indice pour parcourir les deux tableaux, tu prends alternativement la String de l'un et la String de l'autre (avec le cas particulier de l'index 3 qui finit sur le chiffre).
imen123
Messages postés
13
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2012
Modifié par imen123 le 30/11/2012 à 22:52
Modifié par imen123 le 30/11/2012 à 22:52
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 :)
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
30 nov. 2012 à 23:00
30 nov. 2012 à 23:00
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];
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
30 nov. 2012 à 23:12
30 nov. 2012 à 23:12
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
imen123
Messages postés
13
Date d'inscription
dimanche 18 novembre 2012
Statut
Membre
Dernière intervention
2 décembre 2012
30 nov. 2012 à 23:25
30 nov. 2012 à 23:25
et oui ça marche merciiiiiiiii :)
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
30 nov. 2012 à 23:10
30 nov. 2012 à 23:10
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);
Modifié par imen123 le 30/11/2012 à 22:33
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