2017-08-02 53 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); 
    } 
} 

我在in.next()。charAt(0)行中收到错误。我正努力阅读由字符组成的网格。我真的不明白如何阅读字符,但我发现在另一个线程。在网格中阅读时,有没有这样的字符读取的理由?想象我的输入如下:在java中char中读取错误

asdfv 
sdsaf 
asfdf 
asfaf 
asfdf 

也大小为5;先谢谢你。

+0

什么类型的对象在? –

+2

“我收到一个错误” - 那是什么错误? –

回答

-1

您只使用每个输入行的第一个字符。

例如,第一个in.next()将读取“asdfv”String,但您只将该String的第一个字符分配给您的数组,并丢弃其余数字。

您可以将代码更改为:

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

这样grid[j]将一个完整的输入行的字符进行初始化。