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

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

方法一:使用Split和Array.Exists

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

cs 复制代码
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' 不存在于分割后的子字符串中"

方法二:使用 ContainsSplit

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

cs 复制代码
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 来提高性能:

cs 复制代码
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的写法)

cs 复制代码
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 调用,逻辑上与方法一相同,但提供了更灵活的查询能力,适合需要进行复杂条件筛选的情况。

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

相关推荐
与火星的孩子对话1 小时前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物
response_L1 小时前
国产系统统信uos和麒麟v10在线打开word给表格赋值
java·c#·word·信创·在线编辑
MasterNeverDown1 小时前
Swagger2Md:让WebAPI文档生成变得轻松高效
c#
向宇it1 小时前
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
开发语言·游戏·unity·c#·编辑器·游戏引擎
闪电麦坤9510 小时前
C#:base 关键字
开发语言·c#
mingupup11 小时前
C#连接小智服务器并将音频解码播放过程记录
c#
爱吃奶酪的松鼠丶14 小时前
.net GRPC服务搭建,跨进程调用。C#应用和Python应用之间的通信。
python·c#·.net
勘察加熊人19 小时前
forms实现俄罗斯方块
c#
艾妮艾妮1 天前
C语言常见3种排序
java·c语言·开发语言·c++·算法·c#·排序算法
小码编匠1 天前
.NET 验证码生成神器基于 SkiaSharp 的高性能方案
后端·c#·.net