Java - 找不到符号“.retainAll()”

时间:2015-05-03 23:00:13

标签: java

我是java的新手,所以如果我的代码很糟糕,请不要太难 我想提取两个数组之间的公共元素,我发现你可以使用函数“.retainAll()”但是当我使用它时,cmd告诉我“它找不到符号”.retainAll()“ 。我的代码有什么问题吗?我怎么能改变它?

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.lang.*

class Main {
   public static void main(String[] args)  {
     String string = "I will come and meet you at the 123woods";
     String keyword = "123woods";

     String[] string1 = string.split("\\s+");
        for (int i = 0; i < string1.length; i++){
            string1[i] = string1[i].replaceAll("[^\\w]", "");
        }

     String[] string2 = keyword.split("\\s+");
     for (int i = 0; i < string2.length; i++){
            string2[i] = string2[i].replaceAll("[^\\w]", "");
        }

     String[] string3 = string1.retainAll(string2);



     Boolean found = Arrays.asList(string.split(" ")).contains(keyword);
     if(found){
      System.out.println("Keyword matched the string");
      System.out.println(string3);

     }
   }
}

1 个答案:

答案 0 :(得分:1)

您忘记了分号以结束以下行:
String[] string2 = keyword.split("\\s+")
这就是编译器生成无法找到符号消息的原因。

但毕竟,对于数组,没有类似retainAll()的方法。您可能想在一个简单的数组上调用Collection method

如果要使用其方法,则应使用集合而不是简单数组。