【发布时间】:2017-06-13 22:25:50
【问题描述】:
让我们说我的话 Array 是 words={"a","the","in","if","are","it","is"} 并且我的 ArrayList 包含这样的字符串 {"a桌子在这里”,“书卖了”,“如果它是可读的”}。我想从数组列表中删除数组的所有单词。 预期输出将是 ArrayList 为 {"table here","books sold","readable"}。
到目前为止我已经尝试过了:
public static void main(String[] args) {
String[] words = {"a","the","in","if","are","it","is"};
List<String> wordList = new ArrayList<String>(Arrays.asList(words));
String[] tArray = {"a table is here", "books are sold","if it is readable"};
List<String> list = new ArrayList<String>(Arrays.asList(tArray));
for (int i = 0; i < list.size(); i++) {
String[] tArrays = list.get(i).split(" ");
List<String> line = new ArrayList<String>(Arrays.asList(tArrays));
for (int c = 0; c < wordList.size(); c++) {
if (wordList.get(c).equals(line.get(i))) {
line.remove(i);
i--;
break;
}
}//end for
list.set(i, String.join(" ", line));
}//end for
for(String string : list)
{
System.out.println(string);
}
}
但没有给出预期的输出。而是给出错误“java.lang.ArrayIndexOutOfBoundsException:-1”
【问题讨论】:
-
您是否尝试过调试代码并检查发生了哪一行异常以及为什么值变为负数?
-
计划使用
line.size()对基于“ ”拆分后的所有单词进行迭代。 -
@dbf 可能是因为 "i--;"我试过调试它..
-
这样做: for (int c = 0; c
标签: java arrays arraylist linked-list