如何在两个引号之间计算文本?

时间:2017-05-11 20:27:12

标签: c#

如此简单: 我想要的只是:

输入:嘿“我想念你了”“再一次”

输出:2

Inpu t:嘿“我想念你了”“再一次”“开玩笑”

输出:3

计算空格从未与我合作,因为:文本中的引号之间有空格

我测试的代码但由于上述原因而从未工作过......

static int CountWords(string text)
{
    int wordCount = 0, index = 0;

    while (index < text.Length)
    {

        while (index < text.Length && !char.IsWhiteSpace(text[index]))
            index++;

        wordCount++;

        while (index < text.Length && char.IsWhiteSpace(text[index]))
            index++;
    }
    return wordCount;
}

2 个答案:

答案 0 :(得分:4)

正则表达式在这里非常有效:

var count = Regex.Matches(input, "\".*?\"").Count;

或者,计算引号数和除以2的其他建议也可以起作用:

var count = input.Count(c => c == '"') / 2;

答案 1 :(得分:0)

您可以计算引号并除以2。

int counter = 0;
int answer = 0;

foreach (char c in input)
{
    if(c == "\"")
    {
        counter++;
    }
}

answer = counter / 2;