2015-11-02 30 views
0

我在这里找到了我的答案,这里多次为编程问题,但事情是这次我不能,不在这里,一般不在网络中,所以在这里我问。2维字符数组在Java中的创建/初始化

我得到这个错误
Error msg: Syntax error on token ";",, expected.

public char pinakas[][] - 四号线而我试图创建/初始化我的2维字符数组(它会从商店字符至Z)

public class Board { 

    public char pinakas[][]; 
    pinakas = new char[4][3]; 


    // constructor - initialize 
    public Board() { 

     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = '*'; 
      } 
     } 
    } 

    // Fill board with * 
    public void fillBoard1() { 
     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = '*'; 
      } 
     } 
    } 

    // Fill board with A 
    public void fillBoard2() { 
     for (int i = 0; i < 5; i++) { 
      for (int j = 0; j < 4; j++) { 
       pinakas[i][j] = 'A'; 
      } 
     } 
    } 
} 

请帮帮忙,我要疯了 (我使用的Eclipse和Java编码(huehue))

+1

请保留IDE(eclipse)标签提及和标记问题给那些处理IDE本身的人。 IDE是您的*编程*问题的根源的情况极不可能。 – ChiefTwoPencils

+1

他的哪行代码有这个错误? – Amirag

+0

soz因为使用了错误的标签,不知道我在面对什么,解决方案很简单,我看到了我的错误,我甚至编辑了这篇文章,因此它不涉及与此问题无关的事情! –

回答

1

首先,你必须选择2初始化您的数组:
1.你可以把它像在类的顶部:

public char pinakas[][] = new char[4][3]; 

请注意, java,大多数程序员会把[]后面的变量放在变量后面,而不是后面的名字 2.你可以在类的顶部声明它并在构造函数中初始化:

public char pinakas[][]; 

public Board() 
{ 
    pinakas = new char[4][3]; 
    //here you can do whatever you want 
} 

其次,你有一个尺寸为[4] [3]的array
您从0到4(包括4)和从0到3(包括3)传递的for循环中。 实际上,第一个位置有5个可能的值。第二位则是4位。 因此,即使您设法解决1个问题,您将得到OutOfBoundsException也会发生什么情况。

+0

感谢兄弟!我是一个新手与Java,soz这样一个“基本”的问题 - 。 - –

+0

@NickTritsis没有问题。每天我们学习新的东西:) – Amirag

0

真正的答案是,你不能有EXPRES在班级的身体中。虽然这样可以:

public char pinakas[][] = new char[4][3]; 

你现在拥有的不是。

+6

在java中,你可以同时做到这一点。 – afzalex

+0

@afzalex你真的可以吗?我其实并不知道。 编辑:是的,刚试过。 afzelex是正确的。 –

0

你不能有这段代码只是你的类

pinakas = new char[4][3]; 

它必须是一个方法或构造内的内挂在那里。 或者你可以简单地在你定义它同时初始化变量:

public char pinakas[][] = new char[4][3]; 
0

你的问题是,你是分离的表达成一个Java类,它是无效的两条线。代码只能在一个方法中执行。你只需要两行合并成一个单一的一个:

变化:

public char pinakas[][]; 
pinakas = new char[4][3]; 

要:

public char pinakas[][] = new char[4][3]; 
0

你需要把你的2线的平卡斯阵列为一体,像所以:

public char pinakas[][] = new char[4][3]; 

然后,你需要修复你的for循环填充你的数组,所以你没有得到一个IndexOutOfBounds例外:

public Board() { 
    //You were using 5 and 4 
    //When you should be using 4 and 3 
    for (int i = 0; i < 4; i++) { 
     for (int j = 0; j < 3; j++) { 
      pinakas[i][j] = '*'; 
     } 
    } 
} 
0

试试这个...... public char a [] [] = new char [2] [3];

我认为Eclipse不支持数组声明,然后在方法外部的类中进行初始化。