此数组从存储在另一个数组中的一堆字中获取参数。
如果数组有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"}};
答案 0 :(得分:0)
matrix.length = 3,但矩阵[0] .length = 4
当您在最外层循环中迭代到matrix.length,但是使用String [matrix [0] .length]初始化同义词时,永远不会达到同义词[3],因此为null
编辑: 因此,在矩阵的这些行中,您的searchWord无法找到,您永远不会设置同义词[i]。你只在块
中设置它if (matrix[i][j].equals(wordToBeFound)) {
但如果这是假的,那么你的同义词数组永远不会被修改