网上很少有 .net 版本的的 Rope 实现,为方便自己使用,将网上的一个 java 版本 (ahmadsoft)的翻译到了 C#,服务人类。
改动了其中的字符串匹配部分,将原有java版本使用的 BoyerMooreHorspool 匹配改为了 BoyerMooreSunday,当调用 indexOf 时效率稍微提高了些。但鉴于 Rope 的实现方式, IndexOf 方法的效率偏低,比直接使用 String.IndexOf 还差些,但最重要的一点,查询时间O 是线性的。 String.IndexOf 确不是。
只是做了简单的测试,大字符串的处理效率还行,不保证没bug
1