我试图通过使用.equal来比较字符串的数组列表和字符串数组但是它不工作我试图从数组列表中删除元素如果它等于数组元素每次执行时如果部分而不是删除数组列表中的元素
public ArrayList removeCommonWords(ArrayList<String> fileTokens){
System.err.println("size of arraylist: \t"+fileTokens.size()+"\t size of array: \t"+stoppingWordsGlobal.length);
for(int i=0;i<fileTokens.size();i++){
for (int j=0;j<stoppingWordsGlobal.length;j++) {
if (fileTokens.get(i).equals(stoppingWordsGlobal[j])) {
fileTokens.remove(i);
System.out.print("\nremoving token number :"+"\t"+i+"\t"+fileTokens.get(i)+"\t"+stoppingWordsGlobal[j]);
}
}
}
return fileTokens;
}
答案 0 :(得分:1)
将String[] stringArray
转换为ArrayList<String>
:
ArrayList<String> strings = new ArrayList<>(Arrays.asList(stringArray));
然后只需从原始列表中删除共享内容:
originalList.removeAll(strings);
或在一行(未经测试):
originalList.removeAll(new ArrayList<String>(Arrays.asList(stringArray));
答案 1 :(得分:0)
试试这个:
main method code:
ArrayList<String> list= new ArrayList<String>();
list.add("angularjs");
list.add("javascript");
list.add("java");
list.add("c");
Test test= new Test();
System.out.println(test.removeCommonWords(list));
你的方法:
String[] stoppingWordsGlobal={"nodejs","java","angularjs"};
public ArrayList removeCommonWords(ArrayList<String> fileTokens){
System.err.println("size of arraylist: \t"+fileTokens.size()+"\t size of array: \t"+stoppingWordsGlobal.length);
for(int i=0;i<fileTokens.size();i++){
for (int j=0;j<stoppingWordsGlobal.length;j++) {
if (fileTokens.get(i).equals(stoppingWordsGlobal[j])) {
String removedString=fileTokens.get(i);
fileTokens.remove(i);
System.out.print("\nremoving token number :"+"\t"+i+"\t"+removedString+"\t"+stoppingWordsGlobal[j]);
}
}
}
return fileTokens;
}
输出是:
arraylist的大小:4个数组的大小:3
删除令牌号码:0 angularjs angularjs
删除令牌号:1 java java