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

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

相关推荐
时光追逐者5 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 46 期(2025年7.7-7.13)
c#·.net·.netcore
mit6.8245 小时前
Why C# and .NET are still relevant in 2025
c#
liulilittle5 小时前
.NET ExpandoObject 技术原理解析
开发语言·网络·windows·c#·.net·net·动态编程
军训猫猫头6 小时前
5.浏览本地文件获取路径与文件名称 C#例子 WPF例子
开发语言·c#·wpf
东方.既白17 小时前
C#中发布订阅的阻塞非阻塞
c#
白雪公主的后妈18 小时前
C#——数据与变量
数据结构·c#·数据与变量
张人玉18 小时前
c#如何将不同类型的数据存储到一起
c#
小李飞飞砖18 小时前
JVM 锁自动升级机制详解
开发语言·jvm·c#
CodeCraft Studio19 小时前
文档处理控件Aspose.Words教程:从 C# 中的 Word 文档中提取页面
c#·word·aspose·aspose.word·word页面提取
唐青枫20 小时前
C#.NET 集合框架详解
c#·.net