如何只在字符串的第一句中找到一个字母的出现次数?

sam*_*ali 0 c# string char

我想在第一句中找到字母"a"的数量.下面的代码在所有句子中都找到了"a",但我只想要第一句话.

static void Main(string[] args)
{
    string text;  int k = 0;
    text = "bla bla bla. something second. maybe last sentence.";

    foreach (char a in text)
    {
        char b = 'a';
        if (b == a)
        {
            k += 1;
        }
    }

    Console.WriteLine("number of a in first sentence is " + k);
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*haw 9

这会将字符串拆分为由'.'分隔的数组,然后计算数组第一个元素(第一个句子)中'a'字符的数量.

var count = Text.Split(new[] { '.', '!', '?', })[0].Count(c => c == 'a');
Run Code Online (Sandbox Code Playgroud)

此示例假定句子由a分隔.,或者!.如果你的字符串中有一个十进制数字(例如123.456),那将被视为句子中断.将字符串分解为准确的句子是一项相当复杂的练习.

  • 我会包括'!' 和'?' 作为分裂参数,但否则它是最优雅的方式. (3认同)
  • 很好的答案,包括一个案例,其中输入的文字没有".",我的upvote. (2认同)