‘壹’ java如何去掉字符串中重复的字符
lz 你好
这个就是一个比较简单的算法题 , 你可以自己写
但是用Java语言就不需要了 , Java自带泛型相关的类 , 很有用
其中TreeSet集合能自动识别添加的是否重复 , 重复的将不会添加 , 很方便
以下是实现代码:
importjava.util.List;
importjava.util.Scanner;
publicclassDeleteRepeated{
privateStringstr;
privateTreeSet<String>noReapted;//带有String类型的TreeSet泛型
publicDeleteRepeated(){
Scannerin=newScanner(System.in);
System.out.println("输入一个字符串:");
str=in.nextLine();
noReapted=newTreeSet();
}
//清楚重复的数据
publicvoidremoveRepeated(){
for(inti=0;i<str.length();i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型所以先加一个""空格,转换成String型
//TreeSet泛型能保证重复的不加入,而且有序
}
str="";
for(Stringindex:noReapted){
str+=index;
}
//输出
System.out.println(str);
}
publicstaticvoidmain(String[]args){
DeleteRepeateddr=newDeleteRepeated();
dr.removeRepeated();
}
}
运行截图:
希望能帮助你哈
‘贰’ Java中如何将两个字符串合并,并且把重复的元素去掉,不能用任何排序指令那些,纯手打写出来。
packagetest;
publicclassStringHeBing{
publicstaticStringmerge(Stringstr1,Stringstr2){
intlen=str2.length();
for(inti=0;i<len;i++){
charc=str2.charAt(i);
if(str1.indexOf(c)==-1){
str1=str1.concat(c+"");
}
}
System.err.println(str1);
returnstr1;
}
publicstaticvoidmain(String[]args){
Stringstr1="上海金融大厦";
Stringstr2="上港集团";
merge(str1,str2);
}
}
上面的做法只把加加进来的字符串去重,而未把原来的字符串去重复,下面做了个新的
publicstaticStringmerge1(Stringstr1,Stringstr2){
Stringadd=str1.concat(str2);
Stringresult=add.charAt(0)+"";
for(inti=1;i<add.length();i++){
charc=add.charAt(i);
if(result.indexOf(c)==-1){
result=result.concat(c+"");
}
}
returnresult;
}