1. An input method for a communication device having a processor, the method comprising: receiving an input string; ranking, by the processor, a predicted string associated with the input string, wherein the ranking depends on whether the input string is a substring of the predicted string and at least on one of a typing speed and a typing confidence; and displaying the ranked predicted string.