.解析一个字符串,对字符串中重复出现的字符,只在第一次出现时保留
 如: abdabbefgf 结果为 abdefg

解决方案 »

  1.   

    按字符遍历字符串,然后将每个字符存入HashSet,最后HashSet中的结果就是你要的。
      

  2.   

    把字符串转化为一个字符串数组,让每一个都与另外几个比较,若不同就返回true输出,相同返回false不输出。
      

  3.   

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Scanner;
    public class Test2 { public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    String str = sc.next();
    List<Character> list = new ArrayList<Character>();
    for(int i=0; i<str.length(); i++){
    if(!list.contains(str.charAt(i))){
    list.add(str.charAt(i));
    }
    }
    System.out.println(list);
    }
    }
      

  4.   

    HashSet是不行的,因为HashSet是无序的!
      

  5.   

     String str = "abdabbefgf";
     String b = "";
     for(int i =0;i < str.length();i++){
       if(b.indexOf(str.charAt(i)) == -1){
          b+=str.charAt(i)) ;   } }
      

  6.   


    import java.util.LinkedHashSet;
    public class Test{
    public static void main(String args[]){
    LinkedHashSet<Character> set = new LinkedHashSet<Character>();
    String s = "abdabbefgf";
    for(Character c:s.toCharArray()){
    if(set.add(c)){
    System.out.print(c);
    }
    }
    System.out.println(set);
    }
    }
      

  7.   


    public static void main(String[] args) {
    String str = "abdabbefgf";
    String b = ""; for (char c : str.toCharArray())
    if (b.indexOf(c) == -1)
    b += c;
    System.out.println(b);
    }
      

  8.   

    for example
    String s = "abdabbefgf";
    StringBuilder buf = new StringBuilder();
    char[] c = s.toCharArray();
    for (int i=0; i<c.length; i++) {
        if (s.indexOf(c[i]) == i) buf.append(c[i]);
    }
    System.out.println(buf);
      

  9.   


    为了表示赞同,我也写个调整版:        String str = "abdabbefgf";
            StringBuilder buf = new StringBuilder();
            char[] c = str.toCharArray();
            boolean[] flags = new boolean[26];
            for (int i = 0; i < c.length; i++) {
                if (!flags[c[i] - 'a']) {
                    buf.append(c[i]);
                    flags[c[i] - 'a'] = true;
                    if (buf.length() == 26) break;
                }
            }
            System.out.println(buf);不过只能正常工作于全小写字母,哈哈。