如何解决C#在比较2个字符串时识别不同的字符
var str1 = "ASD_ZIHJK2A";
\\ 输出:对 1 个不同的字符:Z
var str2 = "ASD_YIHJK2A";
\\ 输出:对 1 个不同的字符:Y
var str3 = "AWD_PIHJK2A";
\\ 输出:对 2 个不同的字符:P
var str4 = "AWD_IHJK2AQ";
\\ 输出:对 2 个不同的字符:Q
var str5 = "ASD_RTHJK2A";
\\ 输出:对 3 个不同的字符:J
var str6 = "ASD_RTHIK2A";
\输出:对 3 差异:I
使用 C# 查找对中每个字符串的对和状态差异的最简单方法是什么?
-要比较的字符串等长
-string 中间也包含数字
-“不同字符”在第二个字符串中的位置可以不同
解决方法
使用 Linq.Except
的方法
产生两个序列的集合差。 两个集合的集合差定义为第一个集合中没有出现在第二个集合中的成员。
此方法返回第一个中没有出现在第二个中的元素。它不会在第二个中返回那些没有出现在第一个中的元素。仅返回唯一元素。
var strOne = "ASD_ZIHJK";
var strTwo = "ASD_YIHJK";
var difference_strOne = strOne.Except(strTwo); // Z
var difference_strTwo = strTwo.Except(strOne); // Y
,
简单的解决方案
public static char? FindFirstDifference(string first,string second)
{
int length = Math.Min(first.Length,second.Length);
for (int = 0; i < length; i++)
{
if (first[i] != second[i])
{
return first[i];
}
}
return null;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。