我将此字符串作为示例的输入:
string value = "fffeefef";
我的问题是,我无法弄清楚我应该怎么做。我想计算它在字符串中从f变为e的次数,反之亦然,输出应为4.字符串可能会被更改,所以我无法弄清楚算法。如果你们可以开导我,我会很感激!我知道这听起来很容易,但我还在学习。任何帮助表示赞赏!
答案 0 :(得分:6)
编辑:根据要求添加注释以解释每个部分。
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
}
答案 1 :(得分:6)
参见示例: 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);
字符串只是一个字符数组,因此您可以通过索引访问它们。我们创建一个简单的for循环,迭代n - 1
次(因为我们从1开始),其中n
是stringValue
(stringValue.Length
)的长度。我们的if语句表示如果当前字符不等于它之前的字符,则增加一个计数器(characterChanges
)。
for循环的第一次迭代将读取:索引2处的字符等于索引1处的字符,然后字符3等于字符2,依此类推......