Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中二维字符数组的创建/初始化_Java_Arrays_Multidimensional Array_Char - Fatal编程技术网

Java中二维字符数组的创建/初始化

Java中二维字符数组的创建/初始化,java,arrays,multidimensional-array,char,Java,Arrays,Multidimensional Array,Char,我在这里多次找到了关于编程问题的答案,但这次我不能,不是在这里,不是在网络上,所以我在这里问 我得到了这个错误 当我试图创建/初始化我的二维字符数组(它将存储从A到Z的字符)时,在public char pinakas[][]-第4行上 公共课程委员会{ 公共拼音[][]]; pinakas=新字符[4][3]; //构造函数-初始化 公共委员会(){ 对于(int i=0;i

我在这里多次找到了关于编程问题的答案,但这次我不能,不是在这里,不是在网络上,所以我在这里问

我得到了这个错误

当我试图创建/初始化我的二维字符数组(它将存储从A到Z的字符)时,在
public char pinakas[][]
-第4行上

公共课程委员会{
公共拼音[][]];
pinakas=新字符[4][3];
//构造函数-初始化
公共委员会(){
对于(int i=0;i<5;i++){
对于(int j=0;j<4;j++){
pinakas[i][j]='*';
}
}
}
//把木板填满*
公共空白填写栏1(){
对于(int i=0;i<5;i++){
对于(int j=0;j<4;j++){
pinakas[i][j]='*';
}
}
}
//在黑板上填上一张纸
公共空白填写栏2(){
对于(int i=0;i<5;i++){
对于(int j=0;j<4;j++){
pinakas[i][j]=“A”;
}
}
}
}
请帮帮我,我快疯了
(我使用的是Eclipse和Java编码(huehue))

真正的答案是在类主体中不能有表达式。虽然这样可以:

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

您当前拥有的不是。

您不能将这段代码挂在您的类中

pinakas = new char[4][3];
它必须在方法或构造函数中。 或者,您可以在定义变量的同时简单地初始化变量:

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

您的问题是在Java类中将表达式分成两行,这是无效的。只有在方法中才能像这样执行代码。您只需将这两行合并为一行:

更改:

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


您需要将pinkas阵列的两行放在一行中,如下所示:

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] = '*';
        }
    }
}
publicboard(){
//你用的是5和4
//什么时候应该使用4和3
对于(int i=0;i<4;i++){
对于(int j=0;j<3;j++){
pinakas[i][j]='*';
}
}
}

首先,您有两个选项来初始化阵列:
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]大小的
数组。
在for循环中,从0传递到4(包括4)和从0传递到3(包括3)。 实际上,第一个位置有5个可能的值。第二个位置为4。 所以,即使你设法解决了一个问题,你也会得到
出界异常

试试看。。。 公共字符a[][]=新字符[2][3]

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

只需使用:

char pinakas[][]=new char[5][4];
避免在不同的步骤中进行声明和初始化,或者在类之外进行声明和初始化

或使用:

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

然后更改每次迭代的限制(将每次迭代减少一次)。

在java中,您可以双向执行。@afzalex您真的可以吗?我其实不知道。编辑:是的,刚刚试过。afzelex是正确的。请将使用IDE(eclipse)标记的问题的提及和标记保留给那些涉及IDE本身的问题。IDE极不可能是您编程问题的根源。哪行代码有此错误?因为使用了错误的标记,所以不知道我面临的是什么,解决方案很简单,我看到了我的错误,我甚至编辑了这篇文章,因此它不涉及与此问题无关的内容!
char pinakas[][]=new char[5][4];
char pinakas[][]=new char[4][3];