Skip to content

Commit 1cf23dc

Browse files
committed
Remove duplicates and arrange letters lexicographically
1 parent 9a2ac5f commit 1cf23dc

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.rampatra.strings;
2+
3+
import java.util.Set;
4+
import java.util.TreeSet;
5+
import java.util.stream.Collectors;
6+
7+
/**
8+
* @author rampatra
9+
* @since 2019-04-02
10+
*/
11+
public class RemoveDuplicatesAndArrangeLetters {
12+
13+
private static String removeDuplicatesAndArrangeLettersLexicographically(String str) {
14+
Set<Character> charSet = new TreeSet<>();
15+
char[] chars = str.toCharArray();
16+
17+
for (char ch : chars) {
18+
charSet.add(ch);
19+
}
20+
21+
return charSet.toString();
22+
}
23+
24+
private static String removeDuplicatesAndArrangeLettersLexicographically_Java8(String str) {
25+
return str.chars()
26+
.distinct()
27+
.sorted()
28+
.mapToObj(i -> (char) i)
29+
.map(String::valueOf)
30+
.collect(Collectors.joining());
31+
}
32+
33+
public static void main(String[] args) {
34+
System.out.println(removeDuplicatesAndArrangeLettersLexicographically("algo&dsInJava"));
35+
System.out.println(removeDuplicatesAndArrangeLettersLexicographically_Java8("algo&dsInJava"));
36+
}
37+
}

0 commit comments

Comments
 (0)