Comment imprimer Tableau à Deux Dimensions comme la table
Je vais avoir un problème avec un tableau à deux dimensions. Je vais avoir un écran comme ceci:
1 2 3 4 5 6 7 9 10 11 12 13 14 15 16 . . . etc
Fondamentalement, ce que je veux c'est afficher à l'écran:
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20
21 22 23 24 ... etc
Voici mon code:
int twoDm[][]= new int[7][5];
int i,j,k=1;
for(i=0;i<7;i++){
for(j=0;j<5;j++) {
twoDm[i][j]=k;
k++;}
}
for(i=0;i<7;i++){
for(j=0;j<5;j++) {
System.out.print(twoDm[i][j]+" ");
System.out.print("");}
}
OriginalL'auteur kix | 2012-10-11
Vous devez vous connecter pour publier un commentaire.
Sortie
Bien sûr, vous pouvez permuter les 7 & 5 comme mentionné dans d'autres réponses, pour obtenir 7 par ligne.
Qu'advient-il si le i-ème j-ème élément a beaucoup plus de chiffres que ith +-1 et j-ème élément?
OriginalL'auteur Andrew Thompson
Vous avez besoin d'imprimer une nouvelle ligne après chaque ligne...
System.out.print("\n")
, ou de l'utilisationprintln
, etc. Comme il se trouve que vous êtes juste l'impression de rien -System.out.print("")
, remplacerprint
avecprintln
ou""
avec"\n"
.Il a dit de mettre de la
println()
après chaque LIGNE, pas après chaque impression que vous ne. En d'autres termes, après l'exécution de la deuxièmefor()
boucle, mais avant d'autoriser la première à la boucle autour de.Assurez-vous que votre println est dans la bonne portée. Votre impression de la première instruction concatène le tout sur la même ligne, donc vous devez vous assurer que votre saut de ligne qui se passe en dehors de la portée de la "j" pour la boucle.
Par la voie. Comment devrais-je le faire comme l'impression 1-7 d'abord, puis de 8 à 14 etc. Im vraiment avoir du mal à comprendre cela.
Avez-vous essayé de faire de mon répondre.
OriginalL'auteur djechlin
Si vous n'avez pas l'esprit les virgules et les parenthèses vous pouvez simplement utiliser:
OriginalL'auteur Marco Lackovic
Vous pourriez écrire une méthode pour imprimer un tableau 2d comme ceci:
OriginalL'auteur Thorn
Une partie de @djechlin réponse, vous devez modifier les lignes et les colonnes. Puisque vous êtes pris que 7 lignes et 5 colonnes, mais en fait vous voulez est de 7 colonnes et 5 lignes.
Faire de cette façon:-
merci man! vraiment l'apprécier.
Je ne comprends pas, quoi de mal dans ma réponse...
oui l'homme. et maintenant je vais avoir une exception ArrayIndexOutOfBoundsException.
Les Trolls doivent être au travail.. je ne vois rien de mal avec votre réponse.
OriginalL'auteur Siva Charan
Je vais poster une solution avec un peu plus d'élaboration, en plus du code, l'erreur initiale et les suivants qui ont été mis en évidence dans les commentaires sont les erreurs courantes dans ce genre de concaténation de chaîne problème.
À partir de la question initiale, comme cela a été bien expliqué par @djechlin, nous voyons qu'il existe le besoin d'imprimer une nouvelle ligne après chaque ligne de votre tableau a été complété. Donc, nous avons besoin de cette déclaration:
Toutefois, l'impression que, immédiatement après l'impression de la première déclaration donne des résultats erronés. Ce qui donne?
C'est un problème de portée. Notez qu'il y a deux boucles pour une raison, une boucle gère les lignes, tandis que l'autre gère les colonnes. Votre boucle intérieure, le "j" de la boucle, parcourt chaque élément du tableau "j" pour un "i". Par conséquent, à la fin de la boucle j, vous devriez avoir une ligne unique. Vous pouvez penser à chaque itération de ce "j" en boucle que la construction de la "colonnes" de votre tableau. Depuis la boucle interne s'appuie nos colonnes, nous ne voulons pas d'impression de notre ligne, on pourrait en faire une nouvelle ligne pour chaque élément!
Une fois que vous êtes hors de la boucle j, vous devez mettre fin à cette ligne avant de passer à la suivante "je" itérer. C'est le bon endroit pour gérer une nouvelle ligne, parce que c'est la "portée" de votre tableau de lignes, au lieu de votre colonnes de la table.
Et vous pouvez voir que cette nouvelle ligne sera vrai, même si vous modifiez les dimensions de votre table en changeant les valeurs de fin de votre "i" et "j" boucles.
for(i=0;i<5;i++){ for(j=0;j<7;j++){ if (twoDm[i][j]%7==1) System.out.print("\n"); System.out.print(twoDm[i][j]+" ");
Pas tout à fait. C'est une solution simple, il suffit de déplacer la deuxième instruction d'impression à l'intérieur de la boucle interne. Vous ne pouvez pas appeler des cellules individuelles à l'extérieur de la boucle intérieure, parce que vous obtiendrez une en dehors des limites de l'exception. Il va compiler une fois que vous corriger cela, mais il sera en désordre parce que vous allez avoir une ligne vide avant votre sortie. L'examen de ce que vos boucles, et de réorganiser vos lignes pour obtenir votre mise en forme souhaitée.
merci pour l'aide de l'homme!
OriginalL'auteur Anthony Neace
Plus façon efficace et facile pour imprimer le tableau 2D dans une formaté de la manière:
Essayez ceci:
Exemple De Sortie:
OriginalL'auteur Hassnain Jamil
Juste pour les enregistrements, Java 8 fournit une meilleure alternative.
OriginalL'auteur Alok Shukla
Vous pouvez créer une méthode qui imprime la matrice sous la forme d'un tableau :
Remarque: cela ne fonctionne pas bien sur les matrices avec des nombres à plusieurs chiffres et
les matrices rectangulaires.
De sortie :
J'ai créé cette méthode, tout en pratiquant les boucles et les tableaux, je préfère utiliser:
System.out.println(Arrays.deepToString(matrix).replace("], ", "]\n")));
OriginalL'auteur Iliya
Iliya,
Désolé.
vous code du travail. mais sa avait un problème avec la Matrice de lignes et de colonnes
ici, j'ai corriger votre code de ce travail correctement, vous pouvez essayer ce ..
et mettre à ressembler à
OriginalL'auteur Kum4r4n
Ce pourrait être la fin cependant, cette méthode ne fait ce que vous demandez d'une façon parfaite, il montre même les éléments dans le " tableau - style, qui est génial pour les débutants à comprendre vraiment comment un Tableau Multidimensionnel de l'air.
Fois que vous avez terminé la création de cette méthode, il vous suffit de mettre ceci dans votre méthode principale:
NOTE. Depuis que nous avons fait la méthode afin qu'elle nécessite Tableau Multidimensionnel comme une entrée il l'habitude de travailler pour 1 dimensions des tableaux (ce qui n'aurait aucun sens de toute façon)
Source: entrez description du lien ici
PS. Il pourrait être déroutant un peu depuis que j'ai utilisé ma langue pour nommer les éléments variables, cependant ABC, afin de les traduire, désolé.
OriginalL'auteur Solocid
OriginalL'auteur Thar
Cela fonctionne,ajouter une nouvelle ligne dans la boucle for de la ligne. Lors de la première rangée sera fait de l'impression du code de saut dans la nouvelle ligne.
Il est similaire, mais quel est le problème avec ma réponse ?
OriginalL'auteur Rishabh Yadav
VOUS TOUS, MERCI de BUTIN À ELLE que je Suis étonnée qu'il ont besoin de peu de QI
juste obtenir la longueur par arr[0].la longueur et le problème est résolu
OriginalL'auteur HAROONMIND