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

C#字符串操作:判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中的几种方法

要判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中,可以使用以下几种方法:

方法一:使用Split和Array.Exists

你可以使用 Split 方法将字符串分割成子字符串数组,然后使用 Exists方法检查目标字符串是否在数组中:

using System;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string target = "CoroCTA";string[] substrings = input.Split('|');if (Array.Exists(substrings, s => s == target)){Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");}else{Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");}}
}

在这个方法中,我们使用 Array.Exists 方法来检查目标字符串是否在分割后的子字符串数组中。

代码解释如下:

  • 首先,定义了输入字符串 input 为 "CCTA|CoroCTA|CoronaryCTA",以及要搜索的目标字符串 target 为 "CoroCTA"
  • 然后,使用 Split('|') 方法按照管道符将 input 字符串分割成一个字符串数组 substrings
  • 接着,使用 Array.Exists 方法,传入 substrings 和一个 lambda 表达式 s => s == target,该表达式会为数组中的每个元素 s 检查是否与 target 相等。
  • 如果存在匹配项,即 target 在分割后的子字符串中,程序输出 "字符串 'CoroCTA' 存在于分割后的子字符串中";否则,输出 "字符串 'CoroCTA' 不存在于分割后的子字符串中"

方法二:使用 Contains 和 Split

你也可以使用 LINQ 来简化这个过程:

using System;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string target = "CoroCTA";string[] substrings = input.Split('|');if (substrings.Contains(target)){Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");}else{Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");}}
}

在这个方法中,我们使用 Contains 方法来检查目标字符串是否在分割后的子字符串数组中。

方法三:使用 HashSet

如果你需要多次检查不同的目标字符串是否存在于分割后的子字符串中,可以使用 HashSet 来提高性能:

using System;
using System.Collections.Generic;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string target = "CoroCTA";string[] substrings = input.Split('|');HashSet<string> substringSet = new HashSet<string>(substrings);if (substringSet.Contains(target)){Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");}else{Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");}}
}

在这个方法中,我们首先将分割后的子字符串数组转换为 HashSet,然后使用 Contains 方法来检查目标字符串是否在集合中。HashSet 提供了更快的查找速度,特别是在数据量较大时。 

方法四:使用 LINQ(实际上与方法一相似,但强调LINQ的写法)

using System;
using System.Linq;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string target = "CoroCTA";bool exists = input.Split('|').Any(s => s == target);if (exists){Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");}else{Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");}}
}

这里用 LINQ 的 Any 方法替代了直接的 Contains 调用,逻辑上与方法一相同,但提供了更灵活的查询能力,适合需要进行复杂条件筛选的情况。

这些方法都可以有效地判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中。选择哪种方法取决于你的具体需求和个人偏好。

http://www.lryc.cn/news/395692.html

相关文章:

  • Hi3861 OpenHarmony嵌入式应用入门--MQTT
  • [22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪
  • Maven在Windows中的配置方法
  • 一、redis-万字长文读懂redis
  • 搞清楚[继承],易如反掌
  • Perl 语言入门学习指南:探索高效脚本编程的奥秘
  • 【HTML】-解决页面内容无法选择、复制问题
  • C#中委托与事件
  • 通用后台管理(二)——项目搭建
  • 多模态大模型之达摩院通义MPLUG
  • 文章翻译记录
  • C++ 语法习题(2)
  • 使用Gstreamer时遇到WARNING: erroneous pipeline: no element “x264enc“(亲测有效)
  • SAP 新增移动类型简介
  • SQL性能优化策略
  • 代码随想录第四十八天 | 198.打家劫舍, 213.打家劫舍II,337.打家劫舍III
  • C#实用的工具类库
  • 首席数据官CDO证书报考指南:方式、流程、适考人群与考试难度
  • 数据库基础复习
  • 探索AI大模型(LLM)减少幻觉的三种策略
  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第十三章 Linux连接档
  • 鸿蒙语言基础类库:【@ohos.uri (URI字符串解析)】
  • JavaScript---new Map()用法
  • 【数据基础】— 基于Go1.19的站点模板爬虫的实现
  • Angular进阶之九: JS code coverage是如何运作的
  • el-table 鼠标移入更改悬停背景颜色
  • 【《无主之地3》风格角色渲染在Unity URP下的实现_角色渲染(第四篇) 】
  • 【linux服务器篇】-Redis-RDM远程连接redis
  • 【pytorch15】链式法则
  • C#用链表和数组分别实现堆栈