正規表現はより良い選択でしょうか? 文字が文字列にまったく表示されない場合と同様に、文字のすべての出現を取得します(テストはコンソールアプリケーションにあります-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();
}
}
}
}