Java 在toString方法中使用数组

Java 在toString方法中使用数组,java,arrays,tostring,Java,Arrays,Tostring,我已经在这个项目上工作了一段时间了,但我仍然不知道它的第一部分。我正试图用字母网格来搜索单词,但我似乎不知道如何打印出来。到目前为止,我已经: public wordsearch(int row, int col, String letters){ if (letters.length()== row*col){ gridletters= letters; gridrow=row; gridcol=col; letters=

我已经在这个项目上工作了一段时间了,但我仍然不知道它的第一部分。我正试图用字母网格来搜索单词,但我似乎不知道如何打印出来。到目前为止,我已经:

public wordsearch(int row, int col, String letters){
    if (letters.length()== row*col){
        gridletters= letters;
        gridrow=row;
        gridcol=col;
        letters= letters.toUpperCase();

        String array[][]= new String[row][col];

        int character=0;
        for(int rowNum =0; rowNum<row; rowNum++){
            for(int colNum=0; colNum<col; colNum++){
                array[rowNum][colNum] = letters.charAt(character) + "";
                character++;
            }
        }
    }
}
public wordsearch(整数行、整数列、字符串字母){
if(letters.length()==行*列){
网格字母=字母;
gridrow=行;
gridcol=col;
字母=字母。toUpperCase();
字符串数组[][]=新字符串[行][列];
int字符=0;
对于(int-rowNum=0;rowNum)
然后我必须使用toString方法打印它,但我不能
访问toString中的数组

enpublic String toString(){
    String grid= "";
    for(int index=0; index<gridrow; index++){
        for(int index2=0; index2<gridcol; index2++){
            grid+= array[index][index2]+ " ";
        }
        grid+= "\n";
    }
    return grid;
}
在类顶部的某个位置声明一个数组,如下所示:

String globalArray[][];
在wordSearch方法的右大括号之前,请执行以下操作:

globalArray = array; // point it to the local array
然后在
toString()
方法中,您可以访问全局数组

然后我必须使用toString方法打印它,但我不能 访问toString中的数组

enpublic String toString(){
    String grid= "";
    for(int index=0; index<gridrow; index++){
        for(int index2=0; index2<gridcol; index2++){
            grid+= array[index][index2]+ " ";
        }
        grid+= "\n";
    }
    return grid;
}
在类顶部的某个位置声明一个数组,如下所示:

String globalArray[][];
在wordSearch方法的右大括号之前,请执行以下操作:

globalArray = array; // point it to the local array

然后在
toString()
方法中,您可以访问globalArray。

您不能访问在一个方法体中声明的局部变量(除非您从第一个方法调用第二个方法并将该变量作为参数传递)。您必须在类级别声明它

public class YourClass {

private String array[][];

public wordsearch(int row, int col, String letters){
    if (letters.length()== row*col){
    gridletters= letters;
    gridrow=row;
    gridcol=col;
    letters= letters.toUpperCase();

    array= new String[row][col];

    int character=0;
    for(int rowNum =0; rowNum<row; rowNum++){
        for(int colNum=0; colNum<col; colNum++){
            array[rowNum][colNum] = letters.charAt(character) + "";
            character++;
        }
    }}}

public String toString(){
    String grid= "";
    for(int index=0; index<gridrow; index++){
        for(int index2=0; index2<gridcol; index2++){
            grid+= array[index][index2]+ " ";
        }
        grid+= "\n";
    }
    return grid;
}

}
公共类您的类{
专用字符串数组[];
公共单词搜索(整数行、整数列、字符串字母){
if(letters.length()==行*列){
网格字母=字母;
gridrow=行;
gridcol=col;
字母=字母。toUpperCase();
数组=新字符串[行][col];
int字符=0;

对于(int-rowNum=0;rowNum您无法访问在一个方法体中声明的局部变量,而在另一个方法体中声明该局部变量(除非您从第一个方法调用第二个方法并将该变量作为参数传递)。您必须在类级别声明该局部变量

public class YourClass {

private String array[][];

public wordsearch(int row, int col, String letters){
    if (letters.length()== row*col){
    gridletters= letters;
    gridrow=row;
    gridcol=col;
    letters= letters.toUpperCase();

    array= new String[row][col];

    int character=0;
    for(int rowNum =0; rowNum<row; rowNum++){
        for(int colNum=0; colNum<col; colNum++){
            array[rowNum][colNum] = letters.charAt(character) + "";
            character++;
        }
    }}}

public String toString(){
    String grid= "";
    for(int index=0; index<gridrow; index++){
        for(int index2=0; index2<gridcol; index2++){
            grid+= array[index][index2]+ " ";
        }
        grid+= "\n";
    }
    return grid;
}

}
公共类您的类{
专用字符串数组[];
公共单词搜索(整数行、整数列、字符串字母){
if(letters.length()==行*列){
网格字母=字母;
gridrow=行;
gridcol=col;
字母=字母。toUpperCase();
数组=新字符串[行][col];
int字符=0;

for(int rowNum=0;rowNum
array
应该是实例变量而不是局部变量。这样,可以从类中的其他方法访问它

您可以在此处找到有关实例变量和局部变量之间差异的更多信息:

例如:

public class WordSearch {

    private String array[][];  // declare as instance variable

    public WordSearch (int row, int col, String letters) {
        if (letters.length() == row * col) {
            gridletters = letters;
            gridrow = row;
            gridcol = col;
            letters = letters.toUpperCase();

            array = new String[row][col];  // initialize the instance variable

            int character = 0;
            for (int rowNum = 0; rowNum < row; rowNum++) {
                for (int colNum = 0; colNum < col; colNum++) {
                    array[rowNum][colNum] = letters.charAt(character) + "";
                    character++;
                }
            }
        }
    }

    @Override
    public String toString() {
        String grid= "";
        for(int index = 0; index < gridrow; index++) {
            for(int index2 = 0; index2 < gridcol; index2++) {
                grid += array[index][index2]+ " ";
            }
            grid += "\n";
        }
        return grid;  
    }
}
公共类单词搜索{
私有字符串数组[][];//声明为实例变量
公共单词搜索(整数行、整数列、字符串字母){
if(letters.length()==行*列){
网格字母=字母;
gridrow=行;
gridcol=col;
字母=字母。toUpperCase();
array=newstring[row][col];//初始化实例变量
int字符=0;
对于(int-rowNum=0;rowNum
数组
应该是实例变量而不是局部变量。这样,可以从类中的其他方法访问它

您可以在此处找到有关实例变量和局部变量之间差异的更多信息:

例如:

public class WordSearch {

    private String array[][];  // declare as instance variable

    public WordSearch (int row, int col, String letters) {
        if (letters.length() == row * col) {
            gridletters = letters;
            gridrow = row;
            gridcol = col;
            letters = letters.toUpperCase();

            array = new String[row][col];  // initialize the instance variable

            int character = 0;
            for (int rowNum = 0; rowNum < row; rowNum++) {
                for (int colNum = 0; colNum < col; colNum++) {
                    array[rowNum][colNum] = letters.charAt(character) + "";
                    character++;
                }
            }
        }
    }

    @Override
    public String toString() {
        String grid= "";
        for(int index = 0; index < gridrow; index++) {
            for(int index2 = 0; index2 < gridcol; index2++) {
                grid += array[index][index2]+ " ";
            }
            grid += "\n";
        }
        return grid;  
    }
}
公共类单词搜索{
私有字符串数组[][];//声明为实例变量
公共单词搜索(整数行、整数列、字符串字母){
if(letters.length()==行*列){
网格字母=字母;
gridrow=行;
gridcol=col;
字母=字母。toUpperCase();
array=newstring[row][col];//初始化实例变量
int字符=0;
对于(int-rowNum=0;rowNum