0

入力ボックスの値が文字列内の動詞に含まれているかどうかをカウントするにはどうすればよいですか?

可能であれば、動詞の文字の正しい位置を示します (ハングマンのように)。また、動詞に文字が含まれていない場合は、その文字をリストに入れます。

NAME という単語の例:

  1. Eの文字を入力してください
  2. 文字が単語内にある - 最後の位置 (4 番目)

ヘルプの例

  1. 文字を入力してください V 文字が単語内にありません 文字をリストに追加します (間違った文字のリスト)

ご協力いただきありがとうございます;)

4

2 に答える 2

0

string.IndexOf を使用できます。

string hangmanWord = "Democracy";
int index = hangmanWord.IndexOf("m"); // 2 (at position 2)
int index = hangmanWord.IndexOf("x"); // -1 (not found)
于 2012-05-04T07:34:53.220 に答える
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();

            }
        }
    }
}
于 2012-05-04T07:44:22.833 に答える