例如,
String a = "cat dog monkey";
String b = "cat cow monkey";
String c = "cat dog duck";
我想知道是否有任何快速有效的方法在Java中进行,以便找到多个字符串的交叉字,在这种情况下将是“cat”。
答案 0 :(得分:7)
我将每个字符串拆分为一个数组,将其转换为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);
答案 1 :(得分:1)
a.startsWith("cat")
a.endsWith("cat")
a.contains("cat")
中的任何位置,但会区分大小写。要找到交集,这是一个已经给出的代码示例