我是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);
}
}
}
答案 0 :(得分:1)
您忘记了分号以结束以下行:
String[] string2 = keyword.split("\\s+")
。
这就是编译器生成无法找到符号消息的原因。
但毕竟,对于数组,没有类似retainAll()
的方法。您可能想在一个简单的数组上调用Collection
method。
如果要使用其方法,则应使用集合而不是简单数组。