String uniqueCharacters(String text) that creates and returns a String that cont
ID: 3862052 • Letter: S
Question
String uniqueCharacters(String text) that creates and returns a String that contains each character that occurs in the given text, so that each character is included in this result only once. These characters must occur in the result in the exact same order as they first occur in the original string. For example, when called with argument “Hello there, world!”, this method would return “Helo thr,wd!” (Again for efficiency, you should use a StringBuilder inside the method to build up the result.)
Explanation / Answer
import java.util.HashMap;
import java.util.Map;
public class UniqueCharString {
String uniqueCharacters(String text)
{
// String builder to build result string
StringBuilder sb = new StringBuilder();
// Hash map to contain list of seen character.
Map<Character, Integer> uniqueChar = new HashMap<>();
for (char c : text.toCharArray())
{
// if value not in hash map add it to hash map as well as result
if (! uniqueChar.containsKey(c))
{
sb.append(c);
uniqueChar.put(c, 1);
}
}
return sb.toString();
}
public static void main(String[] args)
{
UniqueCharString ucs = new UniqueCharString();
String text = "Hello there, world!";
System.out.println(ucs.uniqueCharacters(text));
}
}
// Sample run
Helo thr,wd!