J'ai un "connect four board" que je simule avec un tableau 2d (tableau [x] [y] x = coordonnée x, y = coordonnée y). Je dois utiliser "System.out.println", donc je dois parcourir les lignes.
J'ai besoin d'un moyen d'itérer de cette façon [0,0] [1,0] [2,0] [3,0] [0,1] [1,1] [2,1] etc.
Si j'utilise la procédure normale:
for (int i = 0; i<array.length; i++){
for (int j = 0; j<array[i].length; j++){
string += array[i][j];
} System.out.println(string)
}
cela ne fonctionne pas car il itère de cette façon [0,0] [0,1] [0,2] [0,3] etc.
La procédure normale reste en x et incrémente y jusqu'à la fin de la colonne, mais je dois dire en y et incrémente x jusqu'à la fin de la ligne.
Considérez-le comme un tableau de tableaux et cela fonctionnera à coup sûr.
int mat[][] = { {10, 20, 30, 40, 50, 60, 70, 80, 90},
{15, 25, 35, 45},
{27, 29, 37, 48},
{32, 33, 39, 50, 51, 89},
};
for(int i=0; i<mat.length; i++) {
for(int j=0; j<mat[i].length; j++) {
System.out.println("Values at arr["+i+"]["+j+"] is "+mat[i][j]);
}
}
Inversez simplement l'ordre des index comme ceci:
for (int j = 0; j<array[0].length; j++){
for (int i = 0; i<array.length; i++){
parce que toutes les lignes ont la même quantité de colonnes, vous pouvez utiliser cette condition j <array [0] .lengt en premier pour la condition du fait que vous itérez sur une matrice
//This is The easiest I can Imagine .
// You need to just change the order of Columns and rows , Yours is printing columns X rows and the solution is printing them rows X columns
for(int rows=0;rows<array.length;rows++){
for(int columns=0;columns <array[rows].length;columns++){
System.out.print(array[rows][columns] + "\t" );}
System.out.println();}
Modifiez simplement les index. i et j .... dans la boucle, plus si vous avez affaire à des chaînes, vous devez utiliser concat et initialiser la variable à un Strong vide sinon vous obtiendrez une exception.
String string="";
for (int i = 0; i<array.length; i++){
for (int j = 0; j<array[i].length; j++){
string = string.concat(array[j][i]);
}
}
System.out.println(string)
Idée simple: obtenir la longueur de la ligne la plus longue, parcourir chaque colonne en imprimant le contenu d'une ligne si elle contient des éléments. Le code ci-dessous peut contenir des erreurs ponctuelles car il a été codé dans un simple éditeur de texte.
int longestRow = 0;
for (int i = 0; i < array.length; i++) {
if (array[i].length > longestRow) {
longestRow = array[i].length;
}
}
for (int j = 0; j < longestRow; j++) {
for (int i = 0; i < array.length; i++) {
if(array[i].length > j) {
System.out.println(array[i][j]);
}
}
}