V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pyengwoei
V2EX  ›  程序员

.net 有没有好的方法或者类 实现两个字符串的比较,并返回不同的字符串

  •  
  •   pyengwoei · 2016-02-14 17:32:39 +08:00 · 2718 次点击
    这是一个创建于 3206 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如
    string a="aaaaaaaa";
    string b="aaaabaaaac";

    不同的地方就有两个 “ b ” 和 “ c ”
    第 1 条附言  ·  2016-02-15 09:30:02 +08:00
    找到一个类, DiffTextClass.cs 不过不太会用
    http://pan.baidu.com/share/link?shareid=3867241298&uk=2316817171&app=zd
    12 条回复    2016-02-15 15:06:45 +08:00
    wwlzz
        1
    wwlzz  
       2016-02-14 17:34:05 +08:00
    请搜索关键字 longest common string :)
    breeswish
        2
    breeswish  
       2016-02-14 17:36:57 +08:00
    你需要字符串 diff 算法
    pyengwoei
        3
    pyengwoei  
    OP
       2016-02-14 17:42:30 +08:00
    @breeswish 是的 找到一个 Diff.cs 不会用
    public static Item [] DiffText(string TextA, string TextB, bool trimSpace, bool ignoreSpace, bool ignoreCase) {
    wwlzz
        4
    wwlzz  
       2016-02-14 17:44:53 +08:00   ❤️ 1
    https://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Longest_common_substring#Retrieve_the_Longest_Substring
    说一个简单的思路,找到两个字符串最长子字符串,认为是相同的,剩下部分递归执行上面算法,直到剩下的字符串长度小于等于 1 ,算法参考上面的链接。
    breeswish
        5
    breeswish  
       2016-02-14 17:55:59 +08:00
    @pyengwoei diff 一般返回的包括新增了哪些、删除了哪些,或者可能还有移动了哪些,修改了哪些..
    pyengwoei
        6
    pyengwoei  
    OP
       2016-02-14 18:00:50 +08:00
    @breeswish 这个 diff 算法 可以去哪里找到啦 ,呵呵
    pyengwoei
        7
    pyengwoei  
    OP
       2016-02-14 18:01:11 +08:00
    @wwlzz 好的,正在查看
    pyengwoei
        8
    pyengwoei  
    OP
       2016-02-15 09:37:23 +08:00
    @wwlzz 我在测试中,非常感谢
    jsq2627
        9
    jsq2627  
       2016-02-15 12:40:57 +08:00
    wwlzz
        10
    wwlzz  
       2016-02-15 13:33:34 +08:00
    我简单看了下你贴的 DiffTextClass.cs 里面的算法,其中 LCS 这个方法就是我说的最小子字符串算法,思路就是我回复里面描述的那种
    pyengwoei
        11
    pyengwoei  
    OP
       2016-02-15 15:00:54 +08:00
    @jsq2627 现在我知道什么是大神和菜鸟的区别了
    pyengwoei
        12
    pyengwoei  
    OP
       2016-02-15 15:06:45 +08:00
    @wwlzz 好的 谢谢了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 09:57 · PVG 17:57 · LAX 01:57 · JFK 04:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.