如果来自输入框的值是在字符串中的动词中,我如何计算?
如果可能的话,在动词中给出正确的字母位置(如刽子手) 此外,如果动词不包含字母,请将该字母放在列表中。
带有NAME一词的示例:
示例帮助
感谢您的帮助;)
答案 0 :(得分:0)
您可以使用string.IndexOf:
string hangmanWord = "Democracy";
int index = hangmanWord.IndexOf("m"); // 2 (at position 2)
int index = hangmanWord.IndexOf("x"); // -1 (not found)
答案 1 :(得分:0)
正则表达式会是更好的选择吗?你得到一个字母的所有出现以及字母中根本没有出现的字母(测试是在控制台应用程序中 - 确保使用System.Text.RegularExpressions
命名空间):
编辑:包括Hangman类和一个简单的控制台调用:
public class Hangman
{
public List<string> InvalidLetters { get; private set; }
private string input;
public Hangman(string input)
{
InvalidLetters = new List<string>();
this.input = input;
}
public void CheckLetter(string letter)
{
if (!Regex.IsMatch(input, letter, RegexOptions.IgnoreCase))
{
InvalidLetters.Add(letter);
Console.WriteLine("Letter " + letter + " does not appear in the string.");
}
else
{
MatchCollection coll = Regex.Matches(input, letter, RegexOptions.IgnoreCase);
Console.WriteLine("Letter " + letter + " appears in the following locations:");
foreach (Match m in coll)
{
Console.WriteLine(m.Index);
}
}
}
}
和主程序:
class Program
{
static void Main(string[] args)
{
string input = "Stack Overflow";
if (!string.IsNullOrEmpty(input))
{
Hangman h = new Hangman(input);
string letter = Console.ReadLine();
while (!string.IsNullOrEmpty(letter))
{
h.CheckLetter(letter);
letter = Console.ReadLine();
}
}
}
}