删除字符串中重复的字符

public class RepeatStr {
    public static void main(String[] args) {
       // delRepeat("01211113477440000447756677899123");

        String str = "abcaabcd";
        str = delRepeat2(str);
        System.out.println(str);
//        delRepeat3("abcaabcd");
    }

    public static String delRepeat2(String str){
        char[]c = str.toCharArray();
        int len = c.length;
        int[]flag = new int[8];
        int i;
        for ( i=0;i<8;i++)
            flag[i] = 0;
        for (i=0;i<len;i++){
            int index = (int)c[i]/32;
            int shift = (int)c[i]%32;
            if((flag[index]&(1<<shift))!=0){
                c[i] = '\0';
            }

            flag[index]|=(1<<shift);
        }
        int l = 0;
        for (i=0;i<len;i++){
            if (c[i]!='\0')
                c[l++] = c[i];
        }
        return new String(c,0,l);
    }


    public static void delRepeat(String str){
        TreeSet<String> ts = new TreeSet<String>();
        for (int i=0;i<str.length();i++){
            ts.add(str.charAt(i)+" ");
        }

        Iterator<String> it = ts.iterator();
        StringBuilder sb = new StringBuilder();
        while (it.hasNext()){
            sb.append(it.next());
        }
        System.out.print(sb.toString());
    }


    public static void delRepeat3(String str){
        char[]chars = str.toCharArray();
        List<Character>list =  new ArrayList<Character>();
        for (int i=0;i<chars.length;i++){
            if (!list.contains(chars[i])){
                list.add(chars[i]);
            }
        }
        System.out.println(list);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值