在多个字符串中查找相似的单词(交集)

Xit*_*rum -3 java string

例如,

String a = "cat dog monkey";
String b = "cat cow monkey";
String c = "cat dog duck";
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何快速有效的方法在Java中进行,以便找到多个字符串的相交字,在这种情况下将是"cat".

Mur*_*nik 7

我将每个字符串拆分为一个数组,将其转换为a Set并使用该retainAll方法:

String a = "cat dog monkey";
String b = "cat cow monkey";
String c = "cat dog duck";

Set<String> aSet = new HashSet<>(Arrays.asList(a.split(" ")));
Set<String> bSet = new HashSet<>(Arrays.asList(a.split(" ")));
Set<String> cSet = new HashSet<>(Arrays.asList(a.split(" ")));

Set<String> result = new HashSet<>(aSet);
result.retainAll(bSet);
result.retainAll(cSet);
Run Code Online (Sandbox Code Playgroud)