计算字符串中的零个数

时间:2016-08-22 02:02:44

标签: c# .net string

我有一个字符串,如下51200000000000000000000000000000

此字符串未修复。它将附加取决于板的数量。如果有两个板,则字符串将如下5120000000000000000000000000000052200000000000000000000000000000

我想知道如何计算字符串中的零数。

我使用以下代码但如果有两个以上的主板则不灵活。

string str = "51200000000000000000000000000000";
string zeros = "00000000000000000000000000000";
if (str.Contains(zeros))
{
     Console.WriteLine("true");
}
else
{
     Console.WriteLine("false");
}

5 个答案:

答案 0 :(得分:9)

您可以使用以下代码执行此操作,这将为您提供零(Example)的数量。

char matchChar='0';
string strInput = "51200000000000000000000000000000";
int zeroCount = strInput.Count(x => x == matchChar); // will be 29

你可以通过迭代每个字符并检查它是否是必需字符(比如0)然后计算它来做同样的事情。

答案 1 :(得分:8)

使用简单的foreach循环遍历字符串并计算:

int CountZeroes(string str)
{
    // TODO: error checking, etc.
    int count = 0;
    foreach (var character in str)
    {
        if (character == '0') count++;
    }

    return count;
}

答案 2 :(得分:3)

一种先进(或左右)技术可以将string转换为char array然后转换为list of chars然后使用LINQ

        string str = "51200000000000000000000000000000";

        List<char> nums = str.ToCharArray().ToList();

        Console.WriteLine(nums.Where(x => x.Equals('0')).Select(x => x.ToString()).Count());

我只是把它放在这里,以防你想要学习的不仅仅是一种方法:)

答案 3 :(得分:0)

它也适用于 for 循环和 Substring

<强>代码

string str = "51200000000000000000000000000000";
int n = 0;
for (int i = 0; i < str.Length; i++)
{
    if (str.Substring(i, 1) == "0")
    n += 1;
}
Console.WriteLine("Count : " + n.ToString());

<强> Working fiddle demo

答案 4 :(得分:0)

代码:

    string st;
        st = textBox1.Text;
        int countch = 0, i;
        for (i = 0; i < st.Length; i++)
            if (st[i]=='0') countch++;           
        MessageBox.Show(countch.ToString());