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