需求:定义一个方法,接受一个字符串,
功能:去重,输入一个字符串,返回一个没有重复元素的字符串 - .使用不少于2种方式实现
1、原生字符串,2、字符串数组,3、List, 4、set,5、HashMap
package Week5Set;
import java.util.HashSet;
import java.util.Set;
public class Text0 {//Set集合
public String getStr(Set set){
String result="";
for (Object o:set) {
String s=(String)o;
result=result+s;
}
return result;
}
public String str(String s){
String result="";
Set set=new HashSet();
for (int i = 0; i <s.length(); i++) {
String a=s.charAt(i)+"";
set.add(a);
}
result=getStr(set);
return result;
}
}
package Week5Set;
import java.util.ArrayList;
import java.util.List;
public class Text1 {//list集合
public String getStr(List list){
String result="";
for (Object o:list) {
String s=(String)o;
result=result+s;
}
return result;
}
public String str(String s){
String result="";
List list=new ArrayList();
for (int i = 0; i <s.length() ; i++) {
String a=s.charAt(i)+"";//这里要用字符串类型,不然用char类型后面的类型转换会报错
boolean pd=list.contains(a);
if(pd==false){
list.add(a);
}
}
result=getStr(list);
return result;
}
}
package Week5Set;
import java.util.Arrays;
public class Text2 {//字符串数组
public void clearArr(String s){
// 创建一个对比数组
String[] arr = new String[0];
for (int i = 0; i < s.length(); i++) {
// 将charAt的char值变成String类型并且命名
String str=s.charAt(i)+"";
if(s.indexOf(str) == i) {
// 创建扩容数组
String[] newarr = Arrays.copyOf(arr,arr.length+1);
// 循环添加数组进入已经扩容成功的数组
for(int j=0;j < newarr.length;j++){
newarr[j]=str;
System.out.print(newarr[j]);
}
}
}
}
}
package Week5Set;
public class Text3 {//字符串拼接
public String str(String s){
String reslut="";
for (int i = 0; i <s.length() ; i++) {
String str=s.charAt(i)+"";
if(reslut.indexOf(str)==-1){
reslut=str+reslut;
}
}
return reslut;
}
}
package Week5Set;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Text4 {
public String str(String S){
String result="";
Map map=new HashMap();
for (int i = 0; i <S.length() ; i++) {
String a=S.charAt(i)+"";
map.put(a,i);
}
Iterator iterator=map.keySet().iterator();//这里的map.keySet()是字符串
while (iterator.hasNext()){
result=result+iterator.next();
}
return result;
}
}
package Week5Set;
public class Demo {
public static void main(String[] args) {
Text0 t=new Text0();//方法0使用Set集合
String x0=t.str("1abcabcdeab");
System.out.println(x0);
Text1 t1=new Text1();//方法1使用list集合
String x1=t1.str("2abcabhgcab");
System.out.println(x1);
Text2 t2=new Text2();//方法2使用字符串数组
t2.clearArr("3abcabcab");
System.out.println("");
Text3 t3=new Text3();//字符串拼接
String x3=t3.str("4abcabcab");
System.out.println(x3);
Text4 t4=new Text4();//HashMap
String x4=t4.str("5abcabcab");
System.out.println(x4);
}
}
运行结果: