public bool IsNumber(string s) { s = s.Trim(); IState curState = new InitialState(); foreach (var c in s) { var charType = ToCharType(c); curState = curState.Transfer(charType); if (curState == States.IllegalState) { return(false); } } return(curState.IsNumber()); }