zoukankan      html  css  js  c++  java
  • 类似于StringBuilder的字符串加强处理类

    大家都知道StringBuilder的用途,但是StringBuilder提供的功能却实在是太少了.特别是在处理字符串不区分大写时它就不能为力了.只能够将它里面的数据提取出来进行处理然后再放回进去,但这样做的话这里转来转去耗费资源就太多了这是我们不想要的结果。而刚好我在做一个模版对象时就需要这种能够快速处理字符串的需求,所以StringBuilder就不再符合要求只能自己做一个仿照于它并加强部分功能的TextBuilder……

    我们都知道StringBuilder是在内部维护一个字符数组的,所以我们也是从字符数组里下手用于做我们的string缓冲,而在C#里能够快速操作字符数组的也许就需要使用微软不推荐使用的“指针”了(呵呵,别头痛,虽然我也对指针很头痛,但这里用的指针很简单,你可以看成是一个数组的int索引编号值)

    因我的文字表达能力很差,所以我直接提供代码,希望各位能够看懂

    注:以下代码并非真正个人原创,我只是在原作者的基础上修改并加强部分功能(有中文注解的则是本人所加功能
    如果编译以下代码必须将unsafe打开,否则不能编译
    using System;
    using System.IO;
    using System.ComponentModel;
    using System.Runtime.InteropServices;
    namespace Kingthy.Library.Text
    {
        
    /// <summary>
        
    /// TextBuilder : 类似于StringBuilder的字符串处理类
        
    /// </summary>

        public sealed class TextBuilder
        
    {
            
    构造函数

            
    从文件载入数据

            
    添加字符
     
            
    清空字符

            
    从某字符串里拷贝

            
    删除字符

            
    重新设置容量

            
    插入字符

            
    查找字符

            
    判断字符是否相等

            
    从后面查找字符

            
    获取某部分字符

            
    返回字符

            
    替换字符

            
    私有处理函数

            
    属性

            
    // Fields
            private string _cachedString;
            
    private char[] _data;
            
    private int _length;
            
    private int _capacity;
            
    private const int PaddingSize = 0x10;
        }

    }

  • 相关阅读:
    Python基本数据类型
    DNS服务
    在浏览器地址栏输入百度网址之后的故事(面试必考)
    C++对象的赋值和复制
    C++区别于其他语言的知识点总结
    SQL连接查询(最全面)
    源码堆栈信息保存 到此一游
    linux 内核调试之关键函数名记要
    记几个命令 转
    JS 奇淫巧技 转
  • 原文地址:https://www.cnblogs.com/kingthy/p/902234.html
Copyright © 2011-2022 走看看