计算字符串中字符的变化次数

本文关键字:变化 字符 字符串 计算 | 更新日期: 2023-09-27 17:51:08

我有这个字符串作为一个例子的输入:

string value = "fffeefef";
我的问题是,我不知道我该怎么做。我想数一下字符串中从f到e的变化次数,反之亦然输出应该是4。字符串可能会改变,所以我无法找出算法。如果你们能给我点启发,我会很感激的!我知道这听起来很简单,但我仍在学习。任何帮助都是感激的!

计算字符串中字符的变化次数

编辑:按要求添加注释来解释每个部分。

string value = "fffeefef";    // Set some value to use in the example
int counter = 0;              // Initialize the counter, still zero changes found
for (int i = 1; i < value.Length; i++)    // Make a loop, iterating for every char in the string
{
    if (value[i - 1] != value[i])    // Compare every char with the previous char, starting at char 1 (the second char, as first position is zero).
        counter++;            // If the chars are different, increase our counter
}

示例:https://dotnetfiddle.net/9vvlNw

    string stringValue = "fffeefef";
    int characterChanges = 0;
    for(int i = 1; i < stringValue.Length; i++) 
    {
        if(stringValue[i] != stringValue[i - 1])
        {
            characterChanges++;
        }
    }
    Console.WriteLine("Character changed {0} times.", characterChanges);

字符串只是一个字符数组,所以你可以通过index访问它们。我们创建了一个简单的for循环,迭代n - 1的次数(因为我们从1开始),其中nstringValue (stringValue.Length)的长度。if语句表示,如果当前字符不等于它前面的字符,则增加计数器(characterChanges)。

for循环的第一次迭代将读取:是索引2处的字符等于索引1处的字符,然后是字符3等于字符2,依此类推…