Java 数组抛出空值而不是字符串

Java 数组抛出空值而不是字符串,java,Java,此数组从另一个数组中存储的一组字中获取参数 举例来说,如果数组有6个空格,但只有4个字,那么新数组必须缩小到这4个空格。 如果数组中有6个空格且没有单词,则必须用4个空格填充该数组,并使用字符串“Not Found” 我遇到的问题是数组抛出空值,而不是放入“notfound” 有什么问题吗 public static void getAllSynonyms(String[][] matrix, String wordToBeFound) { int arrayLenght = 0

此数组从另一个数组中存储的一组字中获取参数

举例来说,如果数组有6个空格,但只有4个字,那么新数组必须缩小到这4个空格。 如果数组中有6个空格且没有单词,则必须用4个空格填充该数组,并使用字符串“Not Found”

我遇到的问题是数组抛出空值,而不是放入“notfound”

有什么问题吗

    public static void getAllSynonyms(String[][] matrix, String wordToBeFound) {
    int arrayLenght = 0;
    String synonyms[] = new String[matrix[0].length];

    for (int i = 0; i < matrix.length; i++) {
        for (int j = 0; j < matrix[0].length; j++) {

            if (matrix[i][j].equals(wordToBeFound)) {
                for (int k = 0; k < matrix[0].length; k++) {

                    if (!matrix[i][k].equals("")) {
                        synonyms[i] = matrix[i][k];

                    } else {
                        arrayLenght = matrix[0].length - 1;
                        synonyms[i] = "Not Found";
                        int counter = 0;
                        counter++;
                    }
                    System.out.println("" + synonyms[i]);
                }
            }
        }
    }
    String synonymsArray[] = new String[arrayLenght];


    for (int i = 0; i <synonyms.length; i++) {
        System.out.println(""+ synonyms[i]);

            if (synonyms[i] != "Not Found") {
            synonymsArray[counter2++] = synonyms[i];

            }


        }

    }

matrix.length=3,但matrix[0]。length=4

当您在最外层循环中迭代直到matrix.length,但初始化了字符串[matrix[0].length]的同义词时,同义词[3]永远不会到达,因此为null

编辑: 因此,在矩阵的这几行中,您的搜索词无法找到,而且您从未设置同义词[i]。你只在街区里设置它

if (matrix[i][j].equals(wordToBeFound)) {

但是如果这是假的,那么你的同义词数组永远不会被修改

包括你传递矩阵数组的代码。我怀疑你不能初始化它,因为你有一个空矩阵!除了许多其他问题外,j循环使用[0]矩阵线。0、1和2的位置是空的
if (matrix[i][j].equals(wordToBeFound)) {