当前位置: 首页 > news >正文

C#判断带数字的字符串数组连续性的两种方式

  给定一个包含数字的字符串数组,需要判断数组中每项包含的数字是否连续增长。
  如果数组项中的非数字字符有规律,例如给数字增加固定的前缀、后缀等,则较快的判断方式是提前按规则生成包含连续数字的字符串数组,直接判断给定的字符串数组是否与其相同即可。

string[] definedClass = { "第1课", "第2课", "第3课", "第4课", "第5课", "第6课", "第7课", "第8课", "第9课", "第10课" };string[] testArray1 = { "第1课", "第2课", "第8课", "第4课", "第X课", "第6课" };bool compareResult = true;for(int i = 0; i < definedClass.Length && i<testArray1.Length; i++)
{if (testArray1[i] != definedClass[i]);{compareResult = false; break;}
}Console.WriteLine(compareResult? "testArray1为连续数组":"testArray1为非连续数组");compareResult = true;
string[] testArray2 = { "第1课", "第2课", "第3课", "第4课" };for (int i = 0; i < definedClass.Length && i < testArray2.Length; i++)
{if (testArray2[i] != definedClass[i]) {compareResult = false;break;}
}
Console.WriteLine(compareResult? "testArray2为连续数组":"testArray2为非连续数组");

  如果数组项中的非数字字符没有规律,则需将每项字符串转换为数字,然后判断数字是否连续,根据参考文献1-2给出的做法,可以使用正则表达式去除字符串中的非数字字符,然后再判断数字连续性。示例代码如下:

string[] testArray1 = { "1bc", "afda2afd", "@#8", "4你好", "hello6课" };
Console.WriteLine(PublicMethod.IsContinuousArray(testArray1) ? "testArray1为连续数组":"testArray1为非连续数组");string[] testArray2 = { "a1课", "第2c", "fda第3课", "第4课abc" };
Console.WriteLine(PublicMethod.IsContinuousArray(testArray2) ? "testArray2为连续数组" : "testArray2为非连续数组");public static bool IsContinuousArray(string[] oriArray)
{List<int> lstArray = new List<int>();foreach (string s in oriArray){lstArray.Add(Convert.ToInt32(Regex.Replace(s, @"[^0-9]+", "")));}for (int i = 1; i < lstArray.Count; i++){if (lstArray[i] - lstArray[i - 1] != 1){return false;}}return true;
}

参考文献:
[1]https://blog.csdn.net/weixin_41480563/article/details/140916070
[2]https://blog.51cto.com/qubernet/5160884


http://www.mrgr.cn/news/59301.html

相关文章:

  • QT模块--GUI和QtWidgets
  • 「二叉树进阶题解:构建、遍历与结构转化全解析」
  • 【LLaMA-Factory】【Windows】:在windows操作系统配置大模型微调框架LLaMA-Factory
  • 病毒分析-PEID查壳工具
  • rtsp的2种收流模式
  • EasyExcel文件导入与导出
  • 【JavaSE】认识String类,了解,进阶到熟练掌握
  • 使用 Resilience4j 实现重试
  • PHP模拟多继承的方式:traits
  • 数据结构 - 散列表,初探
  • Java篇图书管理系统
  • 深度图像和距离图像
  • 2024年如何学好JS
  • 多层感知机的从零实现与softmax的从零实现(真·0000零基础)
  • 2025前端面试-内存泄露-001
  • 软件模拟 SPI 时序,驱动OLED屏幕
  • 基于Python+Django的气象数据分析与可视化系统
  • 前端工程化面试题
  • asp.net core 入口 验证token,但有的接口要跳过验证
  • 尚硅谷-react教程-求和案例-@redux-devtools/extension 开发者工具使用-笔记
  • 工程项目管理软件怎么选?推荐7款实用工具
  • 越权漏洞概述
  • MinIO 完整使用案例
  • class 36 二叉树高频题目 - 上 (不含有树形dp)
  • 【QT】windows 平台 QT6.8 安装
  • C语言笔记(指针题目)例题+图解