首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用集合的两个数组的交集

使用集合的两个数组的交集
EN

Stack Overflow用户
提问于 2014-01-11 12:22:58
回答 3查看 391关注 0票数 0

我的要求是,如果我有两个字符串,我应该得到两个字符串的交集-意味着返回字符串的公共元素而不重复。

我的做法是:

代码语言:javascript
运行
复制
String str1="Character";
String str2="National";

Set<Character> set1=new HashSet<Character>();
Set<Character> set2=new HashSet<Character>();

for(char c:str1.toLowerCase().toCharArray()){
    set1.add(c);
}

for(char c:str2.toLowerCase().toCharArray()){
    set2.add(c);
}

Set<Character> inter=new HashSet<Character>(set1);
Set<Character> union=new HashSet<Character>(set1);

inter.retainAll(set2);
union.addAll(set2);

现在,交交包含交集,并包含联合,如下所示:

集合的相交:t,集合的一个联合:t,e,c,r,a,n,o,l,h,i

但是我想把这些设置转换成字符串,如"ta“和”tecranolhi“。

我使用的是String arr1[]=inter.toArray(new String[0]);,但是它会产生一个错误。

代码语言:javascript
运行
复制
**Exception in thread "main" java.lang.ArrayStoreException: java.lang.Character
        at java.util.AbstractCollection.toArray(Unknown Source)
        at StringInter.main(StringInter.java:22)**

有人能澄清这一点吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-11 12:26:46

代码语言:javascript
运行
复制
StringBuilder builder = new StringBuilder();
for (Character c : inter) {
    builder.append(c.charValue());
}
String interAsString = builder.toString();
票数 2
EN

Stack Overflow用户

发布于 2014-01-11 12:35:10

正如我所说的,创建一个StringBuilder,遍历Set并追加每个字符。最后,调用sb.toString()并将此结果赋值给您的String变量。

这里还有一个爪哇-8解决方案:

代码语言:javascript
运行
复制
String s = inter.stream().collect(StringBuilder::new, 
                                  StringBuilder::append,
                                  StringBuilder::append).toString();
票数 3
EN

Stack Overflow用户

发布于 2014-01-11 12:35:17

请参阅下面的代码片段:

代码语言:javascript
运行
复制
StringBuffer b = new StringBuffer();
Iterator i = inter.iterator();
while(i.hasNext())
{
  b.append(i.next().toString());
}
String interString = b.toString();

现在,interString会得到你想要的东西。希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21062178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档