Custom exception for string that is too long
if(str1.equalsIgnoreCase("done"))
        System.exit(0); //exit on first startup



Do not use System.exit() (somewhere else then in a catch block in main) It terminates the JVM immediately. This is usually not intended.
just write a return instead.


         if(str1.length()&gt;MAX_STRING_LENGTH)
                throw new StringTooLongException();
            System.out.println("\nEnter a string, enter DONE when finished:\n");
            str1 = input.nextLine();         



This will result in an endless loop when the user enters a long string. The check is done (and the exception thrown) before she gets a chance to enter a new one.  

You should move the if behind the input request and delete the initial input request (along wit the if there) before the loop.



Since you do nothing else in the loop the checking the string and requesting new one some may argue that you use the Exception as flow control for which exceptions are not supposed to be used.
I'd agree to that argument in this particular case as long as the "happy path" also repeats the loop...