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

时间:2015-04-25 10:14:45

标签: java

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

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

我遇到的问题是数组抛出空值而不是放“未找到”。

这可能是什么问题?

    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];

            }


        }

    }

空值出现在第二个System.out中。

这是矩阵。

String[][] matrix = {{"joe", "slim", "ed", "george"},
    {"soto", "", "asdrubal", ""},
    {"billy", "sanchez", "carlos", "fernando"}};

1 个答案:

答案 0 :(得分:0)

matrix.length = 3,但矩阵[0] .length = 4

当您在最外层循环中迭代到matrix.length,但是使用String [matrix [0] .length]初始化同义词时,永远不会达到同义词[3],因此为null

编辑: 因此,在矩阵的这些行中,您的searchWord无法找到,您永远不会设置同义词[i]。你只在块

中设置它
if (matrix[i][j].equals(wordToBeFound)) {

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