如何检查另一个字符串中某个字符串的出现次数?

时间:2013-11-30 17:54:18

标签: c# string count

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等其他内容,但如果没有办法修复此代码,我会接受它。

6 个答案:

答案 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!