In this paper, we give some new characterizations of words which are finite factors of Sturmian words. An enumeration formula for primitive finite Sturmian words is given. Moreover, we provide two linear-time algorithms to recognize whether a finite word is Sturmian.