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

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

相关推荐
Fighting_p1 小时前
【预览word文档】使用插件 docx-preview 预览线上 word 文档
开发语言·c#·word
jiushidt4 小时前
Things About ArcGISPro
arcgis·c#·.net·arcgispro
雪雁4 小时前
CodeSpirit 多语言国际化使用指南(Beta)
c#·asp.net·.net 10·codespirit
自己的九又四分之三站台4 小时前
写一个简单的DebugView
c#
CreasyChan5 小时前
C#中单个下划线的语法与用途详解
前端·c#
m5655bj5 小时前
如何通过 C# 实现 PDF 页面裁剪
前端·pdf·c#
STARBLOCKSHADOW5 小时前
【C#】VS中打包C#桌面软件为exe文件
c#·vs·打包·桌面程序
步步为营DotNet5 小时前
深度解析C# 11 的Required成员:编译期验证逻辑与稳健编程实践
java·服务器·c#
唐青枫6 小时前
深入理解 C#.NET Parallel:并行编程的正确打开方式
c#·.net
钰fly12 小时前
C#类型转换 显隐转换
c#