You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

字符串属性匹配检查及数组连续相同字符检测需求咨询

检测C#字符串数组中的连续相同字符块

没问题,我来帮你搞定这个连续字符块的检测需求。针对你提供的newChars数组(内容是P, P, P, B, B, T, T, T, P, P),我们可以用一个简单的遍历+跟踪的方式实现,代码清晰还高效。

先直接上可运行的代码示例:

string[] newChars = { "P", "P", "P", "B", "B", "T", "T", "T", "P", "P" };

// 先处理空数组的边界情况
if (newChars.Length == 0)
{
    Console.WriteLine("数组为空,没有可检测的连续块");
    return;
}

// 初始化当前跟踪的字符和连续计数
string currentChar = newChars[0];
int consecutiveCount = 1;

// 从第二个元素开始遍历数组
for (int i = 1; i < newChars.Length; i++)
{
    if (newChars[i] == currentChar)
    {
        // 字符没变化,计数加1
        consecutiveCount++;
    }
    else
    {
        // 字符变了,输出当前的连续块信息
        Console.WriteLine($"连续字符块: *{currentChar}*,连续出现 {consecutiveCount} 次");
        // 更新跟踪的字符和计数,开始新的块
        currentChar = newChars[i];
        consecutiveCount = 1;
    }
}

// 别忘了输出最后一个连续块(循环里不会处理到它)
Console.WriteLine($"连续字符块: *{currentChar}*,连续出现 {consecutiveCount} 次");

运行这段代码后,你会得到这样的输出:

连续字符块: P,连续出现 3 次
连续字符块: B,连续出现 2 次
连续字符块: T,连续出现 3 次
连续字符块: P,连续出现 2 次

代码逻辑解释

  1. 边界处理:先判断数组是否为空,避免后续遍历出现索引越界的问题。
  2. 初始化跟踪变量:用currentChar记录当前正在跟踪的连续字符,consecutiveCount记录这个字符连续出现的次数,初始值设为数组第一个元素和1。
  3. 遍历数组:从第二个元素开始,每次和currentChar对比:
    • 字符相同就累加计数;
    • 字符不同就说明当前连续块结束,输出信息后更新跟踪变量,开始新的块。
  4. 处理最后一个块:循环结束后,最后一个连续块还没输出,所以要单独处理。

如果你需要把这些连续块的信息存储起来(比如后续要做其他处理),可以把结果放到一个自定义的集合里,比如用值元组列表:

// 定义一个列表来存储每个连续块的信息
List<(string Character, int Count)> consecutiveBlocks = new List<(string Character, int Count)>();

// ... 前面的空数组判断和初始化代码

for (int i = 1; i < newChars.Length; i++)
{
    if (newChars[i] == currentChar)
    {
        consecutiveCount++;
    }
    else
    {
        consecutiveBlocks.Add((currentChar, consecutiveCount));
        currentChar = newChars[i];
        consecutiveCount = 1;
    }
}
// 添加最后一个块
consecutiveBlocks.Add((currentChar, consecutiveCount));

// 后续可以遍历这个列表做任何你需要的操作
foreach (var block in consecutiveBlocks)
{
    Console.WriteLine($"字符 {block.Character} 连续出现了 {block.Count} 次");
}

这样就可以灵活地使用这些连续块的数据了。

内容的提问来源于stack exchange,提问作者Ginxxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:43:14