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

打印 上一主题 下一主题

主题 565|帖子 565|积分 1695

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

你可以利用 Split 方法将字符串分割成子字符串数组,然后利用 Exists方法查抄目标字符串是否在数组中:
  1. using System;
  2. class Program
  3. {
  4.     static void Main()
  5.     {
  6.         string input = "CCTA|CoroCTA|CoronaryCTA";
  7.         string target = "CoroCTA";
  8.         string[] substrings = input.Split('|');
  9.         if (Array.Exists(substrings, s => s == target))
  10.         {
  11.             Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");
  12.         }
  13.         else
  14.         {
  15.             Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");
  16.         }
  17.     }
  18. }
复制代码
在这个方法中,我们利用 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 来简化这个过程:
  1. using System;
  2. class Program
  3. {
  4.     static void Main()
  5.     {
  6.         string input = "CCTA|CoroCTA|CoronaryCTA";
  7.         string target = "CoroCTA";
  8.         string[] substrings = input.Split('|');
  9.         if (substrings.Contains(target))
  10.         {
  11.             Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");
  12.         }
  13.         else
  14.         {
  15.             Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");
  16.         }
  17.     }
  18. }
复制代码
在这个方法中,我们利用 Contains 方法来查抄目标字符串是否在分割后的子字符串数组中。
方法三:利用 HashSet

如果你需要多次查抄差异的目标字符串是否存在于分割后的子字符串中,可以利用 HashSet 来提高性能:
  1. using System;
  2. using System.Collections.Generic;
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         string input = "CCTA|CoroCTA|CoronaryCTA";
  8.         string target = "CoroCTA";
  9.         string[] substrings = input.Split('|');
  10.         HashSet<string> substringSet = new HashSet<string>(substrings);
  11.         if (substringSet.Contains(target))
  12.         {
  13.             Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");
  14.         }
  15.         else
  16.         {
  17.             Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");
  18.         }
  19.     }
  20. }
复制代码
在这个方法中,我们首先将分割后的子字符串数组转换为 HashSet,然后利用 Contains 方法来查抄目标字符串是否在集合中。HashSet 提供了更快的查找速度,特殊是在数据量较大时。 
方法四:利用 LINQ(实际上与方法一相似,但夸大LINQ的写法)

  1. using System;
  2. using System.Linq;
  3. class Program
  4. {
  5.     static void Main()
  6.     {
  7.         string input = "CCTA|CoroCTA|CoronaryCTA";
  8.         string target = "CoroCTA";
  9.         bool exists = input.Split('|').Any(s => s == target);
  10.         if (exists)
  11.         {
  12.             Console.WriteLine($"字符串 '{target}' 存在于分割后的子字符串中");
  13.         }
  14.         else
  15.         {
  16.             Console.WriteLine($"字符串 '{target}' 不存在于分割后的子字符串中");
  17.         }
  18.     }
  19. }
复制代码
这里用 LINQ 的 Any 方法更换了直接的 Contains 调用,逻辑上与方法一相同,但提供了更灵活的查询能力,得当需要进行复杂条件筛选的情况。
这些方法都可以有用地判断一个字符串是否存在于另一个字符串按特定字符分割后的子字符串中。选择哪种方法取决于你的具体需求和个人偏好。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表