数组的值无缘无故改变JAVA

时间:2018-02-13 22:13:46

标签: java arrays

arr []的内容以某种方式改变,所以当我尝试从方法中打印返回数组的内容时,它会显示为null。 此方法从用户获取文本文件路径,并将每个单词放入一个数组中,并将其与字典数组(book)进行比较,并且应该在dif []中返回不在字典中的单词。

  int d = arr.length-compare(book, arr);
  int l = 0;
  int bi = 0;
  String[] dif = new String[d];
  if (d >= 1) {
    for (int i = 0; i < arr.length; i++) {
      for (int a = 0; a < book.length; a++) {
        if (book[a].equalsIgnoreCase(arr[i])) {
//IF I TRY TO PRINT ARR[I] HERE IT HAS A VALUE
          bi = 1;
        }
      }
      if (bi != 1) {
        dif[l] = arr[i];
//HERE ARR[I] IS NULL
        System.out.println(arr[i]);
        l = l + 1;
      }
    }
    return dif;
  }
  else {
    return null;}
}

1 个答案:

答案 0 :(得分:0)

for (int i = 0; i < arr.length; i++) {
  for (int a = 0; a < book.length; a++) {
    if (book[a].equalsIgnoreCase(arr[i])) {
//IF I TRY TO PRINT ARR[I] HERE IT HAS A VALUE
      bi = 1;
    }
  }
  if (bi != 1) {
    dif[l] = arr[i];
//HERE ARR[I] IS NULL
    System.out.println(arr[i]);
    l = l + 1;
  }
}

您永远不会重置bi的值,因此只要arr中有一个条目等于book arr中所有后续值中的一个条目null将输出可能包括var = var << SHIFT >> SHIFT;