今天的作业 --- 去重

请添加图片描述
使用Set的写法:

public String myMethod1(String str){                //Set方法
        Set set=new HashSet();
        for (int i = 0; i < str.length(); i++) {
            set.add(str.charAt(i));
        }
        String s = "";
        for (Object o :
                set) {
            s+=o;
        }
        return s;
    }

由于Set集合内不会存储重复的字符,所以可以直接写

使用List的写法:

public String myMethod2(String str){                //List方法
        List list=new ArrayList();
        for (int i = 0; i < str.length(); i++) {        //把字符串分成一个个字符,分别传到list集合中
            list.add(str.charAt(i));
        }
        String strBack = "";
        for (; 0 < list.size();) {
            Object o=list.get(0);                       //把遇到的字符放进返回的字符串中
            strBack += o;
            list.remove(0);
            for (int j = 0; j < list.size(); j++) {     //把之后出现的同一个字符删除
                if (o==list.get(j)){
                    list.remove(j);
                    j--;
                }
            }
        }
        return strBack;
    }

使用字符串的写法:

public String myMethod3(String str){                  //字符串方法
        String strBack = "";
        for (int i = 0; i < str.length(); i++) {
            String s=str.charAt(i)+"";                    //将字符串中每一个字符都取出来
            if (strBack.indexOf(s)==-1){                  //如果返回的字符串内没有该字符,就将该字符放进去
                strBack+=s;
            }
        }
        return strBack;
    }

使用字符串数组的写法:

public String myMethod4(String str) {                 //字符串数组方法
        String strBack = "";
        int num=0;
        char[] arr=new char[str.length()];                //创建一个长度和字符一样长度的数组
        for (int i = 0; i < str.length(); i++) {
            char ch=str.charAt(i);                        //依次获取字符串中的字符
            for (int j = 0; j < arr.length; j++) {        //如果数组里面没有出现过该字符,将字符按顺序放入数组
                if (ch==arr[j]){
                    break;
                }
                if (j==arr.length-1){
                    arr[num++]=ch;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {          //将数组内的字符拼接成字符串
            if (arr[i]==' '){
                break;
            }
            strBack+=arr[i];
        }
        return strBack;
    }

使用HashMap的写法:

public String myMethod5(String str) {               //使用HashMap方法
        String aaa="aaa";//没啥用
        String strBack="";                              //返回值
        Map map=new HashMap();
        for (int i = 0; i < str.length(); i++) {        //将字符串的字符全部传入map集合中
            char ch=str.charAt(i);
            map.put(ch,aaa);
        }
        Set set=map.keySet();
        for (Object o :                                 //将set集合中的字符拼接成字符串
                set) {
            strBack+=o;
        }
        return strBack;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值