如何在字符串中获取唯一字符

时间:2016-04-05 16:49:50

标签: java string

需要一个接收String并在该String中输出唯一字符数组的函数。 输入:" abccddeee" 输出:[' a',''' c',' d',' e']

5 个答案:

答案 0 :(得分:1)

也许流?

List<Character> disinctChars 
     = input.chars()                        // get chars as ints
            .distinct()                     // remove duplicates
            .sorted()                       // sort
            .mapToObj(c -> (char) c)        // convert int to Character
            .collect(Collectors.toList());  // collect in a List
如果你收集到distinct()

sorted()SortedSet可以省略:

Set<Character> distinctChars 
     = input.chars()
            .mapToObj(c -> (char) c)
            .collect(Collectors.toCollection(TreeSet::new));

答案 1 :(得分:0)

您需要使用Set<Character>来删除重复项,如果您需要订购某个订单,请使用LinkedHashSet<Character>(插入订单)或TreeSet<Character>(任意订单)。< / p>

示例:

String string = "aabbeeddffcc";

Set<Character> chars = new TreeSet<>();
for( char c : string.toCharArray() ) {
  chars.add(c);
}

System.out.println( chars );

输出:[a, b, c, d, e, f]

答案 2 :(得分:0)

你能使用Set?

String s = "abccddeee";
Set<Character> set = new HashSet<Character>();
 for (Character c : s.toCharArray()) {
             set.add(c);
  }
 System.out.println(set);

答案 3 :(得分:0)

定义一个Set,因为该集合不接受重复..

实施例

    public static void main(String[] args) {
    String txt = "abccddeee";
    Set<Character> uniqueStr = new HashSet<Character>();
    for (int i = 0; i < txt.length(); i++) {
        uniqueStr.add(txt.charAt(i));
    }
    System.out.println(uniqueStr);
}

答案 4 :(得分:-1)

试试这个:

  public static void fancyStringFunction(String input) {
    for (char c : input.toCharArray()) {
      System.out.println(c);
    }
  }