Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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!