【问题标题】:C# count if a imputfield letter is in a word如果输入字段字母在单词中,则 C# 计数
【发布时间】:2012-05-04 07:23:19
【问题描述】:

如何计算输入框中的值是否在字符串中的动词中?

如果可能,请给出动词中字母的正确位置(如刽子手) 此外,如果动词不包含字母,请将该字母放在列表中。

NAME 示例:

  1. 输入字母 E
  2. 字母在单词的最后位置(第 4 位)

帮助示例

  1. 输入字母 V 字母不在单词内 将字母添加到 列表(包含错误字母的列表)

感谢您的帮助;)

【问题讨论】:

  • 请举例说明
  • 你能举个例子说明一下吗?
  • Roy 听起来你是编程新手。太好了,我们都必须在某个时候开始学习。但是,您提出的许多问题使我相信您没有自己进行任何研究。向我们提供一些您尝试过的方法或失败的想法的示例。

标签: c# substring indexof


【解决方案1】:

正则表达式会是更好的选择吗?您会得到所有出现的字母以及该字母是否根本没有出现在字符串中(测试在控制台应用程序中 - 确保使用 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();

            }
        }
    }
}

【讨论】:

  • 问题:我怎样才能多次运行一个函数,而不仅仅是第一次运行?谢谢你的解释!
  • 我编辑了答案以包括 Hangman 类和 CheckLetter 方法,以及一个简单的控制台程序。我想这就是你要找的。​​span>
【解决方案2】:

你可以使用 string.IndexOf:

string hangmanWord = "Democracy";
int index = hangmanWord.IndexOf("m"); // 2 (at position 2)
int index = hangmanWord.IndexOf("x"); // -1 (not found)

【讨论】:

  • @RoyWagemakers : 你用的是什么文本显示?
猜你喜欢
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 2018-09-03
  • 2016-10-28
相关资源
最近更新 更多