package modern.challenge; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; public final class Strings { private Strings() { throw new AssertionError("Cannot be instantiated"); } public static String removeDuplicatesV1(String str) { if (str == null || str.isEmpty()) { // or throw IllegalArgumentException return ""; } char[] chArray = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (char ch : chArray) { if (sb.indexOf(String.valueOf(ch)) == -1) { sb.append(ch); } } return sb.toString(); } public static String removeDuplicatesV2(String str) { if (str == null || str.isEmpty()) { // or throw IllegalArgumentException return ""; } char[] chArray = str.toCharArray(); StringBuilder sb = new StringBuilder(); Set chHashSet = new HashSet<>(); for (char c : chArray) { if (chHashSet.add(c)) { sb.append(c); } } return sb.toString(); } public static String removeDuplicatesV3(String str) { if (str == null || str.isEmpty()) { // or throw IllegalArgumentException return ""; } return Arrays.asList(str.split("")).stream() .distinct() .collect(Collectors.joining()); } }