如何用C#找出字符串中的句点数

Ala*_*an2 -5 c#

我有如下字符串:

1.1
1.11
11.11
1.1.1
11.11.11
Run Code Online (Sandbox Code Playgroud)

所有这些都是单个字符串,没有空格,只有数字和句点.

我需要能够计算字符串中的句点数.有没有一种简单的方法在C#中执行此操作?

Guf*_*ffa 11

有几种方法,例如(需要框架3.5或更高版本):

int cnt = str.Count(c => c == '.');
Run Code Online (Sandbox Code Playgroud)

要么:

int cnt = 0;
foreach (char c in str) if (c == '.') cnt++;
Run Code Online (Sandbox Code Playgroud)

要么:

int cnt = str.Length - str.Replace(".", "").Length;
Run Code Online (Sandbox Code Playgroud)

  • 当然,最快的是常规的''for`循环.但是,我认为字符串替换方法是一个邪恶的天才的工作. (4认同)
  • @Tyrsius,替换是有趣的,低效和神秘 (2认同)

Dra*_*nen 5

当我输入您确切的问题时谷歌的第一个结果....

http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/4be305bf-0b0a-4f6b-9ad5-309efa9188b8

做一些研究...

int count = 0;
string st = "Hi, these pretzels are making me thirsty; drink this tea. Run like heck. It's a good day.";
foreach(char c in st) {
  if(char.IsLetter(c)) {
    count++;
  }
}
lblResult.Text = count.ToString();
Run Code Online (Sandbox Code Playgroud)

  • 将解决方案粘贴到此处,或进行评论. (2认同)