string containsCharacter = textBox1.Text;
string testString = "test string contains certain characters";
int count = testString.Split(containsCharacter).Length - 1;
我最初从另一个人的问题的答案中删除了此代码,但它似乎不适用于文本框。
我得到的错误:
The best overloaded method match for 'string.Split(params char[])' has some invalid arguments
Argument 1: cannot convert from 'string' to 'char[]'
我更喜欢修复此代码,而不是使用LINQ等其他内容,但如果没有办法修复此代码,我会接受它。
答案 0 :(得分:5)
您可以遍历角色
string value = "BANANA";
int x = 0;
foreach (char c in value)
{
if (c == 'A')
x++;
}
答案 1 :(得分:3)
string containsCharacter = "t";
string testString = "test string contains certain characters";
int count = testString.Count(x => x.ToString() == containsCharacter);
此示例将返回6.
答案 2 :(得分:2)
您使用的Split
版本需要将字符作为输入。这是字符串的版本:
string containsText = textBox1.Text;
string testString = "test string contains certain characters";
int count = testString.Split(new string[]{containsText}, StringSplitOptions.None).Length - 1;
使用此代码,count
将是:1如果textBox1.Text
包含“test”,则为6,如果它包含“t”,等等。也就是说,它可以处理任何字符串(其长度可能为是一个,作为一个单一的角色,或根据需要大。)
答案 3 :(得分:1)
您可以致电ToCharArray
上的string
将其设为char[]
,如下所示:
int count = testString.Split(containsCharacter.ToCharArray()).Length - 1;
由于Split
将字符作为param
,您可以通过列出直接计算的字符来重写此字段,如下所示:
int count = testString.Split(',', ';', '-').Length - 1;
答案 4 :(得分:1)
"this string. contains. 3. dots".Split(new[] {"."}, StringSplitOptions.None).Count() - 1
答案 5 :(得分:1)
编辑: 在仔细阅读您的代码后,我建议您这样做,您应该将您的问题改为 “检查另一个字符串中某个字符串的出现次数”:
string containsString = "this";
string test = "thisisateststringthisisateststring";
var matches = Regex.Matches(test,containsString).Count;
匹配是2!
我的初始帖子回答了您的实际问题“字符串中某个字符的出现次数”:
string test = "thisisateststring";
int count = test.Count(w => w == 'i');
数量是3!