public int Test(string s, char c) { int result = 0; for (int x = 0; x < s.Length; x++) { if (s[x] == c) { result++; } } return result; }
string a = "的说法,dfas。艾丝凡aaf。阿萨德发的飞洒。"; Regex dot = new Regex(@"。", RegexOptions.Multiline); Console.WriteLine(dot.Matches(a).Count);
输出3
String就只有一个Length属性,只用属性的话怎么可能做到!
他没说不准用其他类的方法
可以用 char 来判断,也可以用 Encoding 获取 byte[] 来判断。
string 转化为char[]
或者用转化为string[] 再foreach(string a in str[])和char[]一个原理
var count = s.Count(c => c == '。');
//用的是Enumerable.Count方法,跟string没有关系
unsafe
unsafe fixed(const wchar_t * p = s) { int c = 0; while(*p) { if (*p==L'。') ++c; ++p; } return c; }
语法不清楚,大概这么写。
用正则表达式的方法是效率最高的,如1楼~!