gpt4 book ai didi

c# - 简单词差异算法

转载 作者:可可西里 更新时间:2023-11-01 08:49:01 25 4
gpt4 key购买 nike

我目前正在寻找一种简单且轻量级的算法来比较两个简单的字符串。

例如,如果我们采用这两个字符串:

  • “敏捷的棕色狐狸跳过懒惰的狗”
  • “聪明的棕色狐狸战胜了疯狗”

它应该告诉我第二个单词的两个首字母不同,等等。

现在我有一个比较单词的非常简单的算法:

/// <summary>
/// Make a diff between two strings and returns words indices
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static List<int> Diff(string a, string b)
{
List<int> indices = new List<int>();

string[] asplit = a.Split(' ');
string[] bsplit = b.Split(' ');

for (int i = 0; i < asplit.Length; i++)
{
if (bsplit.Length > i)
{
if (asplit[i].CompareTo(bsplit[i]) != 0)
{
indices.Add(i);
}
}
}

return indices;
}

所以这将告诉我哪些单词(使用空格字符拆分)是不同的。

我在这里阅读了很多关于实现复杂算法或使用现有库的主题。

但我正在接受 .NET 紧凑型框架 (WP7) 的再培训,我不想要可以比较两个文件或两个文本的东西,我只需要一个单词比较。

是否有适合的库或算法?谢谢 :)。

最佳答案

你可以看看 DiffPlex项目。

核心功能看起来像是在\DiffPlex\Differ.cs 中它甚至有一个 Silverlight 查看器,但它可能需要一些移植。

编辑:

根据您的问题,我想补充一点,DiffPlex 特别支持单词比较。埋在所有其他字符、线条等比较方法中可能并不明显。

关于c# - 简单词差异算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com