Let's take a look at what your loop is doing:
if (input.charAt(index % input.length()) != input
.charAt((index + 1) % input.length()))
1) First of all, you should recognize that you are wasting time and processing power by performing the '% input.length()' operation, because index is ALWAYS going to be less than input.length(), so index%input.length() is always equal to index.
Let's disregard %input.length() going forward.
2) When you compare input.charAt(index) to input.charAt(index+1) you're only comparing the current character against the next one. The original question, if I understood it correctly, asks you to remove ALL duplicates, not just ones that appear next to one another.
3) Your algorithm will most likely throw a IndexOutOfBounds exception because when you reach the end of your string (when index == input.length() - 1) checking input.charAt(index+1) will look one character too far in the String.
As the first answer suggested, you'll want to utilize some form of data structure to store all of the DISTINCT characters you encounter. Any time you hit a new character, you'll want to a) add it to your data structure, and b) add it to the end of your output.
input.charAt(..)is using an array for example...