找出字符串中第一个不重复的字符 

解决方案 »

  1.   

    public char noRepeatChar(String s) {
    char[] charArrays = s.toCharArray();
    Set<Character> cset = new HashSet<Character>();
    for (int i = 0; i < charArrays.length; i++) {
    if (cset.add(charArrays[i])) {
    return charArrays[i];
    }
    }
    return ' ';
    }
      

  2.   

    public char noRepeatChar(String s) {
    char[] charArrays = s.toCharArray();
    Set<Character> cset = new HashSet<Character>();
    for (int i = 0; i < charArrays.length; i++) {
    if (cset.add(charArrays[i])) {
    return charArrays[i];
    }
    }
    return ' ';
    }
      

  3.   

    public char noRepeatChar(String s) {
    char[] charArrays = s.toCharArray();
    Set<Character> cset = new HashSet<Character>();
    for (int i = 0; i < charArrays.length; i++) {
    if (cset.add(charArrays[i]) && i > 0) {
    return charArrays[i];
    }
    }
    return ' ';
    }差了一个条件,这个是好的, 如果是空字符串,我只是返回空的
      

  4.   

    可以放一个map,用于每个字符(key)和该字符出现的次数(value),最后取出value为0的。代码的优化很重要。
      

  5.   

    显然就是指整个字符串中都不重复,否则就是return str.charAt(0); // 不考虑null/""
      

  6.   

    你建个hash map 
    将字符串按字符 存入改map key为字符 value为字符串位置 
    插入时判断是否重复 若重复将其设为负数
    然后遍历map 比较 value的值  记得过滤掉为负数的value
      

  7.   

    以我浅薄的理解,楼主第一个不重复的字符的意思是说:需要扫描整个字符串,判断出现次数1次,且位置处于最靠近首部的字母  我的思路是这样的,
    先将这个字符串分拆开为单个字符,放入ArrayList中,
    并且for循环处理这个字符串,并判断当前这个字符是否存在于ArrayList中,用contains()方法即可,有api就是爽!
    这样你第一次找出来的不存在ArrayList中的即为你需要的首个不重复的喽
      

  8.   


      public static Character firstNoRepeated2(String str){   
          for(int i=0;i<length;i++){   
              char c = str.charAt(i);   
             if(str.indexOf(c) == str.lastIndexOf(c)){   
                  return c;   
              }   
          }   
         return null;   
      } 
    这段怎么样 ?
      

  9.   

     public static Character firstNoRepeated2(String str){   
      for(int i=0;i<length;i++){   
      char c = str.charAt(i);   
      if(str.indexOf(c) == str.lastIndexOf(c)){   
      return c;   
      }   
      }   
      return null;   
      }  有人想的和我一样么 ????
      

  10.   

    很精彩的代码 nice!!
    我就没想到 indexOf 和 lastIndexOf 还可以这样用
      

  11.   


    楼主的思想很好。
    其实楼主是想告诉大家,他对String的indexOf和lastIndexOf()的应用很精通..
      

  12.   

    赞一个楼主,其实大家都陷入了查找算法的泥潭中,忘记了有API 可以直接拿来用
      

  13.   

    indexOf = lastIndexOf的话,如果str = "abababababababababababababaababababaababababababababababababababaababababaababababababababababababababaababababaabC"的话,效率貌似还不如计数器...
      

  14.   


    受教了,我其实也是一看了,立刻敲几个代码,程序都还没跑,在自己的脑运行了一下而已,其实应该是indexof == lastindexOf就行了,呵呵