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 小时前
高效Excel合并拆分软件
开发语言·javascript·c#·ocr·排序算法·excel·最小二乘法
一名用户3 小时前
unity实现自定义粒子系统
c#·unity3d·游戏开发
钢铁男儿5 小时前
C# 类和继承(扩展方法)
java·servlet·c#
爱炸薯条的小朋友5 小时前
C#由于获取WPF窗口名称造成的异常报错问题
windows·c#·wpf
Rose 使者7 小时前
全球IP归属地查询接口如何用C#进行调用?
c#·api·ip地址
~plus~9 小时前
Harmony核心:动态方法修补与.NET游戏Mod开发
开发语言·jvm·经验分享·后端·程序人生·c#
htj109 小时前
C# 使用正则表达式
正则表达式·c#
~plus~9 小时前
WPF八大法则:告别模态窗口卡顿
开发语言·经验分享·后端·程序人生·c#
就是有点傻9 小时前
使用WPF的Microsoft.Xaml.Behaviors.Wpf中通用 UI 元素事件
c#
qq_2979080110 小时前
C#报价系统陈列展示成本核算系统项目管理系统纸品非纸品报价软件
sqlserver·c#·.net·开源软件