public int PlayerNumber(string buttonName) { var match = PlayerRegex.Match(buttonName); return(match.Success ? int.Parse(match.Groups[1].Value) : 0); }
public int PlayerNumber(string buttonName) { var match = PlayerRegex.Match(buttonName); if (match.Success) { return(int.Parse(match.Groups[1].Value)); } else { return(0); } }
/// <summary> /// プレイヤー文字列のパースを行います。 /// </summary> /// <remarks> /// 受け入れ可能な構文。 /// /// * 名前 メッセージ /// </remarks> public static ShogiPlayer ParsePlayer(string text) { if (string.IsNullOrEmpty(text)) { return(null); } SkillLevel skillLevel = null; var nickname = string.Empty; // 正規化すると十が10に変換されたりしますが、 // そうなると名前が変わってしまう可能性があります。 // そのため、参加者のパース時は文字列の正規化を行いません。 // //text = StringNormalizer.NormalizeText( // text, NormalizeTextOption.Number); var m = PlayerRegex.Match(text); if (!m.Success) { return(null); } // 名前の解析します。 if (m.Groups[1].Success) { nickname = m.Groups[1].Value; } // 棋力の解析を行います。 if (m.Groups[2].Success) { skillLevel = ParseSkillLevel(m.Groups[2].Value); } // もし棋力か名前がnullな場合は // プレイヤーとして正しくありません。 if ((skillLevel == null || string.IsNullOrEmpty(skillLevel.OriginalText)) || string.IsNullOrEmpty(nickname)) { return(null); } // 棋力はnull以外の値を採用します。 return(new ShogiPlayer() { OriginalText = (string)text.Clone(), SkillLevel = (skillLevel ?? new SkillLevel()), Nickname = nickname, }); }