java怎么去除两个字符串中相同的字符

importjava.util.*;importjava.lang.*;publicclassStringCount{inti,j;ArrayList<String>li... import java.util.*;
import java.lang.*;
public class StringCount {
int i,j;
ArrayList<String> list= new ArrayList<String>();
public void ss()
{
String str="This is a String";
String sbr="isaring";
Set set= new HashSet();
for(i=0;i<str.length();i++)
for(j=0;j<sbr.length();j++)
{
if(sbr.charAt(j)==str.charAt(i))
{

list.add(sbr.substring(j,j+1));
}

}
for(String x:list)
{
set.add(x);
System.out.print(" "+set);
}

}

public static void main(String[] args)
{
StringCount a= new StringCount();
a.ss();

}
}

运行的结果是: [i] [i] [s, i] [s, i] [s, i] [s, i] [s, a, i] [s, r, a, i] [s, r, a, i] [s, r, a, i] [s, r, a, n, i] [g, s, r, a, n, i]
不知道怎么结果是这样,求解释。。还有怎么正确的去除重复的字符。
展开
 我来答
yugi111
2013-09-09 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
set 本身就可以去除相同的元素 ! 没有必要用list

import java.util.*;
public class Test {
public static void main(String[] args){
String str="This is a String";
String sbr="isaring";
Set set = new HashSet();
for(char c:str.toCharArray())
{
set.add(c);
}
for(char c:sbr.toCharArray())
{
set.add(c);
}
System.out.println(set);
}
}

[g, T,  , t, s, r, S, a, n, h, i]


你的代码里面:list.add(sbr.substring(j,j+1));
我觉得应该是list.add(sbr.charAt(j));//把相同的加进来,然后再去除这些相同的就是不同的了
java的时间
推荐于2017-11-26 · TA获得超过123个赞
知道答主
回答量:50
采纳率:0%
帮助的人:25.6万
展开全部
public static void main(String[] args) {
String str="r1qwerty";
String str1="qqwer1z";
String[] check = new test01().check(str,str1);

System.out.println("str: "+check[0]);
System.out.println("str1: "+check[1]);
}

public String[] check(String str,String str1){
char[] c = str.toCharArray();
char[] c1 = str1.toCharArray();
StringBuffer s=new StringBuffer();
StringBuffer s1=new StringBuffer();
for(int i=0;i<c.length;i++){
for(int j=0;j<c1.length;j++){
if(c[i]==(c1[j])){
str=str.replaceAll(String.valueOf(c[i]), "");
str1=str1.replaceAll(String.valueOf(c[i]), "");
}
}
}
return new String[]{str,str1};
}
这个是刚写的,应该没有问题
追问
能再按我的代码写个怎么选取两个字符串相同的字符吗?而且能解释下我的代码运行结果为什么是那样子的呢。。。谢谢=。=小菜鸟求教。。。
追答
如果按照你的方式的话 public void ss()这个方法返回个set,你的set中就是相同的字符;你在循环里进行输出,所以会输出好几次的,拿到外面,也就是
for(String x:list){
set.add(x);
}
System.out.print(" "+set);
不就很直观的看出相同的字符了么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-09
展开全部
放Map里面,自动去掉

Map<Char, Char>
追问
不太清楚还是。能再具体点吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式