java 字符串数组如何去掉相同元素

string[]a={"aabccc","bbdf","ddeeg"}只要一个字母出现在两个以上的字符串中就把它去掉最后变成aaccc,f,eeg... string[] a={"aabccc","bbdf","ddeeg"}
只要一个字母出现在两个以上的字符串中 就把它去掉
最后变成 aaccc,f,eeg
展开
 我来答
浮生若梦辰aU
推荐于2018-05-11 · 超过29用户采纳过TA的回答
知道答主
回答量:109
采纳率:92%
帮助的人:10.9万
展开全部
ArrayList a = new ArrayList(数组);
for(int i = 0 ;i<a.size();i++){
Object obj = a[i];
if(a.contains(obj)){
a.remove(i);
}
}
追问
我运行了一下 得出来是bbdf
谭加巧
2018-05-11 · TA获得超过186个赞
知道小有建树答主
回答量:230
采纳率:79%
帮助的人:101万
展开全部
public static void main(String[] args) {
String[] a={"aabccc","bbdf","ddeeg"};
String[] result=new String[a.length];
Set<String> uniqChar = new HashSet<String>();
Map<String, Integer> timeMap = new HashMap<String, Integer>();
//使用set存放出现的所有字母
for(String aa:a){
for(int j=0;j<aa.length();j++){
if(!uniqChar.contains(aa.charAt(j))){
uniqChar.add(aa.charAt(j)+"");
}
}
}

//使用map记录每个字母在多少个字符串中出现
for(String s:uniqChar){
int times = 0;
for(String aa:a){
if(aa.contains(s)){
times++;
}
}
timeMap.put(s, times);
}

//过滤掉出现次数大于1次的字母
for(String key:timeMap.keySet()){
//System.out.println("key:"+key);
if(timeMap.get(key) > 1){
//System.out.println("big than one key:"+key);
for(int i=0;i<a.length;i++){
a[i] = a[i].replace(key,"");
}
}
}
System.out.println(timeMap);
for(String aa:a){
System.out.print(aa);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式