C# 从两个字符串中找出最大公共子串
string strA = "ahjeibnkwed"; string strB = "oiopqdibnwaaldo"; int iMax = 0;//公共子串的最大长度 int iEnd = 0;//公共子串的起始位置 int iA = strA.Length; int iB = strB.Length; int[,] iFind = new int[iA + 1, iB + 1];//二维数组 for (int i = 1; i < iA; i++) { for (int j = 1; j < iB; j++) { if (strA[i - 1] == strB[j - 1])//当字符串A中字符和字符串B中字符相等时 { iFind[i, j] = iFind[i - 1, j - 1] + 1;//将该相等位置在上一位值基础上累加 if (iFind[i, j] > iMax)//循环比较这个最大的位置值 { iMax = iFind[i, j]; iEnd = i - 1; } } } } Console.WriteLine(strA.Substring(iEnd - iMax + 1, iMax));//最后输出即最大公共子串的内容