计算字符串中的前导零

时间:2019-03-26 03:56:53

标签: c#

我需要计算字符串中的前导零。

这是我发现计算整数前导零的原因

    static int LeadingZeros(int value)
{
   // Shift right unsigned to work with both positive and negative values
   var uValue = (uint) value;
   int leadingZeros = 0;
   while(uValue != 0)
   {
      uValue = uValue >> 1;
      leadingZeros++;
   }

   return (32 - leadingZeros);
}

但是找不到计数字符串中的前导零。

string xx = "000123";

上面的例子有000,所以我想将结果计数数设为3

我如何计算字符串中的零?

如果有人给我小费非常感谢

2 个答案:

答案 0 :(得分:2)

最简单的方法是使用LINQ:

var text = "000123";
var count = text.TakeWhile(c => c == '0').Count();

答案 1 :(得分:1)

int不能包含前导0,但是我假设您只想计算字符串中的前导零

不用花哨,只需使用香草for循环

var input = "0000234";
var count = 0;

for(var i = 0; i < input.Length && input[i] == '0'; i++)
   count++;

Full Demo Here