C#判断一个字符串按特定字符分割后的子字符串是否有重复的几种常用方法:
方法一:使用 LINQ
你可以使用 LINQ 来简化检查重复子字符串的过程:
using System;
using System.Linq;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string[] substrings = input.Split('|');if (substrings.Distinct().Count() == substrings.Length){Console.WriteLine("没有重复的子字符串");}else{Console.WriteLine("存在重复的子字符串");}}
}
在这个方法中,我们使用 Distinct
方法来获取子字符串数组中的唯一元素,然后比较唯一元素的数量和原始子字符串数组的长度。如果两者相等,则表示没有重复的子字符串。
方法二:使用字典
你也可以使用字典来检查重复的子字符串:
using System;
using System.Collections.Generic;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string[] substrings = input.Split('|');Dictionary<string, bool> seen = new Dictionary<string, bool>();foreach (string substring in substrings){if (seen.ContainsKey(substring)){Console.WriteLine("存在重复的子字符串");return;}seen[substring] = true;}Console.WriteLine("没有重复的子字符串");}
}
在这个方法中,我们使用字典来记录已经遇到的子字符串。如果在字典中找到相同的子字符串,则表示存在重复。
方法三:使用数组索引
你还可以使用数组索引来检查重复的子字符串:
using System;class Program
{static void Main(){string input = "CCTA|CoroCTA|CoronaryCTA";string[] substrings = input.Split('|');for (int i = 0; i < substrings.Length; i++){for (int j = i + 1; j < substrings.Length; j++){if (substrings[i] == substrings[j]){Console.WriteLine("存在重复的子字符串");return;}}}Console.WriteLine("没有重复的子字符串");}
}
在这个方法中,我们使用嵌套循环来比较每个子字符串与其他子字符串。如果找到相同的子字符串,则表示存在重复。
这些方法都可以有效地检查字符串按特定字符分割后的子字符串是否有重复,选择哪种方法取决于你的具体需求和个人偏好。