【问题标题】:How to check for match of strings in an array of different/unequal array length?如何检查不同/不等数组长度的数组中的字符串匹配?
【发布时间】:2014-07-07 04:20:09
【问题描述】:

我试图从数组中获取要匹配的字符串,但是,它们仅在字符串长度相等时才匹配。我使用 split 将字符串变成一个数组。

例如,从数据库中获取字符串“The Quick Brown Fox”将匹配用户输入“The Quick Brown Fox”但不匹配“The Quick Brown Fox Jumps”

我想将字符串 "The Quick Brown Fox" 与 "The Quick Brown Fox Jumps" 匹配,并将 4 个单词 (The Quick Brown Fox) 视为正确,而将 "Jumps" 视为错误。另外,如果 EnteredWordsSplit 比 WordsFromDatabaseSplit 字符串短,我需要匹配它。

        if (WordsFromDatabaseSplit.Length == EnteredWordsSplit.Length)
        {

            for (int i = 0; i < WordsFromDatabaseSplit.Length; i++)
            {
                if (WordsFromDatabaseSplit[i] == EnteredWordsSplit[i])
                {
                    correct++;
                }
                else
                {
                    wrong++;
                }
            }
            textBoxEnter.Text = "";
        }
        else
        {
            //code for matching
            textBoxEnter.Text = "";
        }

【问题讨论】:

标签: c# arrays match


【解决方案1】:

试试这个

    public int ReturnRightCount(out int wrongCount)
    {
        var dbString = "The Quick Brown Fox";
        var inputString = "The Quick Brown Fox Jumps";
        var returnRight = 0;
        wrongCount = 0;

        var WordsFromDatabaseSplit = dbString.Split(' ');
        var EnteredWordsSplit = inputString.Split(' ');

        if (WordsFromDatabaseSplit.Length > EnteredWordsSplit.Length)
        {
            wrongCount = 0;
           return 0;
        }

        for (int i = 0; i < WordsFromDatabaseSplit.Length; i++)
        {
            if (WordsFromDatabaseSplit[i].Equals(EnteredWordsSplit[i],StringComparison.OrdinalIgnoreCase))
            {
                returnRight ++;
            }
            else
            {
                wrongCount++;
            }
        }

        return returnRight;
    }
}

【讨论】:

  • 如果将整个事物都算作 0 也无济于事
  • @user3732623 这只是一个示例来说明如何做到这一点,因此您可以根据您的情况非常输出错误计数和返回右。如果您有任何其他情况,或者我在这里遗漏了什么,请告诉我
【解决方案2】:

按照建议,您可以使用Contains 来更轻松地进行匹配。现在我假设Database String 可以在Input String 中找到,即使Input StringDatabase String 长。

String dbString = "The Quick Brown Fox";
String inputString = "The Quick Brown Fox Jumps";
int correct=0, wrong=0;

if (inputString.Contains(dbString))
   {
      correct = dbString.Split(' ').Count(); // In our example the result is 4
      wrong = inputString.Split(' ').Count() - correct; // In our example the result is 1
   }

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 2023-03-23
    • 2014-06-26
    • 2018-06-21
    • 2021-05-22
    • 2019-12-17
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多