java小算法—去除字符串重复字符

来源:互联网 发布:阿里云语音识别demo 编辑:程序博客网 时间:2024/05/22 05:24

方法1:

public static void removeMethod(String s) {
        StringBuffer sb=new StringBuffer();
        int len=s.length();
        int i=0;
        boolean flag=false;
        for(i=0; i<len;i++){
            char c=s.charAt(i);
            if(s.indexOf(c)!=s.lastIndexOf(c)){
                flag=false;
            }else{
                flag=true;
            }
            if(i==s.indexOf(c))
                flag=true;
            if(flag){
                sb.append(c);
            }
        }
        System.out.print(sb.toString());
}


结果:0123456789




方法2:TreeSet


//1.将字符串循环添加到TreeSet中

String str="01211113477440000447756677899123";
TreeSet<String> ts=new TreeSet<>();
 int len=str.length();
for(int i=0;i<len;i++){
ts.add(str.charAt(i)+"");
}

2.循环遍历TreeSet
Iterator<String> i=ts.iterator();
StringBuilder sb=new StringBuilder();
while(i.hasNext()){
sb.append(i.next());
}


3.输出结果
System.out.println(sb.toString());//0123456789



注:Set描述

Collection的子接口之Set接口
Set描述
Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多有一个null元素。Set的构造函数有一个约束条件,传入的Collection参数不能包含重复的元素。


Set接口之HashSet
此类实现 Set接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。


HashSet简单使用
public static void main(String[] args) {
HashSet<String> hs=new HashSet<String>();
hs.add("aaaa");
hs.add("aaaa");
hs.add("bbbb");
hs.add("bbbb");
hs.add("cccc");
hs.add("cccc");
hs.add("dddd");
hs.add(null);
Iterator<String> i=hs.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
}
输出
null
bbbb
dddd
aaaa
cccc


Set接口之TreeSet
此类实现Set接口,由二叉树实现的,Treeset中的数据是自动排好序的,不允许放入null值。


TreeSet简单使用
TreeSet<String> ts=new TreeSet<String>();
ts.add("aaaa");
ts.add("aaaa");
ts.add("bbbb");
ts.add("bbbb");
ts.add("cccc");
ts.add("dddd");
ts.add("dddd");
Iterator<String> i=ts.iterator();
while(i.hasNext()){
System.out.println(i.next());
}
输出
aaaa
bbbb
cccc
dddd


原创粉丝点击