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

ops/2024/10/30 15:53:25/

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

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.ppmy.cn/ops/129624.html

相关文章

rtp协议:rtcp包格式和传输间隔

RTP Control Protocol -- RTCP-rtp控制协议 实时传输控制协议&#xff08;RTCP&#xff09;基于对会话中的所有参与者定期传输控制包&#xff0c;使用与数据包相同的分发机制。底层协议必须提供数据包和控制包的多路复用&#xff0c;例如使用UDP时使用不同的端口号。RTCP执行四…

2024三掌柜赠书活动第三十四期:破解深度学习

目录 前言 深度学习的基本概念 深度学习的关键技术 深度学习的实践应用 关于《破解深度学习》 编辑推荐 内容简介 作者简介 图书目录 《破解深度学习》全书速览 结束语 前言 深度学习作为人工智能领域的一个重要分支&#xff0c;近年来取得了令人瞩目的进展。从图像…

Java进阶篇设计模式之四 -----适配器模式和桥接模式

前言 在上一篇中我们学习了创建型模式的建造者模式和原型模式。本篇则来学习下结构型模式的适配器模式和桥接模式。 适配器模式 简介 适配器模式是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。 简单的来说就…

Spring 全家桶新人入门指南:服务调用最佳实践

spring 全家桶的整体介绍 Spring 全家桶提供了一整套解决方案&#xff0c;覆盖了从基础框架到企业级应用开发的各个方面。其中&#xff0c;Spring Boot 旨在简化新 Spring 应用的初始搭建以及开发过程&#xff0c;通过约定大于配置的原则来快速启动项目&#xff1b;Spring MVC…

巴西电商市场神仙打架,美客多多月蝉联访问量榜首,9月Temu位居巴西APP下载量榜首

巴西电商市场近年来呈现出强劲的增长趋势&#xff0c;预计2024年巴西电子商务市场的销售额将达到2043亿雷亚尔&#xff08;约合373亿美元&#xff09;&#xff0c;同比增长约10%。作为拉美地区最大的经济体&#xff0c;巴西吸引了众多电商平台和商家&#xff0c;巴西电商市场竞…

Hyperledger Fabric有那些核心技术,和其他区块链对比Hyperledger Fabric有那些优势

Hyperledger Fabric是一个模块化、权限化的企业级区块链平台&#xff0c;与比特币、以太坊等公有链相比&#xff0c;Fabric主要为私有链或联盟链设计&#xff0c;适用于企业应用。它包含多项核心技术&#xff0c;使其在企业级区块链应用中具有独特优势。以下是Fabric的核心技术…

Android Studio获取本地aar,最新依赖jar/aar

每次清缓存后打开Android Studio的项目都要加载依赖库很久&#xff0c;那是网络要下载 依赖库和各种指针索引构建&#xff0c;本文提供获取本地依赖库的aar方法&#xff0c;然后把aar以libs的包本地方式引入&#xff0c;减少网络下载&#xff0c;会把kts和groovy的代码都展示。…

分布式项目pom配置

1. 父项目打包方式为 pom <packaging>pom</packaging> 2. 父项目版本配置 <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncod…