2017-08-02 2 views
-2
char grid[][] = new char[size][size]; 
for(int j = 0; j < size; j++) 
{ 
    for(int k = 0; k < size; k++) 
    { 
     grid[j][k] = in.next().charAt(0); 
    } 
} 

Je reçois une erreur dans la ligne in.next(). CharAt (0). Je suis impatient de lire dans une grille faite de chars. Je ne comprends pas vraiment comment lire dans les caractères, mais je l'ai trouvé sur un autre fil. Y a-t-il une raison pour laquelle je ne peux pas lire des caractères comme ceci en lisant dans une grille? Pour visualiser mon entrée, procédez comme suit:erreur lors de la lecture de char dans java

asdfv 
sdsaf 
asfdf 
asfaf 
asfdf 

La taille est également 5; Merci d'avance.

+0

De quel type d'objet s'agit-il? –

+2

"Je reçois une erreur" - alors quelle est l'erreur? –

Répondre

-1

Vous utilisez uniquement le premier caractère de chacune de vos lignes d'entrée.

Par exemple, la première in.next() lit le « asdfv » String, mais vous assignez seul le premier caractère de cette String à votre tableau et jeter le reste.

Vous pouvez modifier le code pour:

char grid[][] = new char[size][size]; 
for(int j = 0; j < size; j++) 
{ 
    grid[j] = in.nextLine().toCharArray(); 
} 

De cette façon grid[j] seront initialisés avec les caractères d'une ligne d'entrée complète.