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;
        }

    }

  • 相关阅读:
    scp免密码登陆进行远程文件同步
    MAD(Median absolute deviation, 中位数绝对偏差)
    机器学习之评价准则RoC与PR
    最新HGVS基因突变命名规则速览
    Somatic vs Germline Mutations
    c/c++ 获取文件夹或目录下的文件
    诊断实验评估指标-灵敏度(sensitivity)特异度(specificity)准确度(accuracy)
    互斥量与条件变量(三步走战略)结合使用原理
    linux常用的时间获取函数(time,gettimeofday,clock_gettime,_ftime,localtime,strftime )
    dup和dup2应用实例(dup跟APUE有出入,close+dup=dup2?)
  • 原文地址:https://www.cnblogs.com/kingthy/p/902234.html
Copyright © 2011-2022 走看看