技术开发 频道

忽略大小写的.NET脏字过滤算法


【IT168技术文档】

  除了实现忽略大小写外,其他方面的性能也做了一些改进,主要借助下面的类,StringSegement,实现了大小写无关的比较和GetHashCode,同时避免了Substring的调用。
public class StringSegment { private string original; private int offset = 0; private int length = 0; public StringSegment(string s) { this.original = s; this.length = original.Length; } public void Slice(int offset, int length) { this.offset = offset; this.length = length; } public override bool Equals(object obj) { StringSegment sg = obj as StringSegment; return sg != null && sg.length == this.length && string.Compare(this.original, this.offset, sg.original, sg.offset, this.length, true) == 0; } public override int GetHashCode() { // call char.tolower and calculate hash code } }
0
相关文章