需要一个接收String并在该String中输出唯一字符数组的函数。 输入:" abccddeee" 输出:[' a',''' c',' d',' e']
答案 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);
}
}