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

    }

  • 相关阅读:
    Vue应用框架整合与实战--Vue技术生态圈篇
    SpringBoot2.0之八 多数据源配置
    SpringBoot2.0之七 实现页面和后台代码的热部署
    SpringBoot2.0之六 多环境配置
    SpringBoot2.0之五 优雅整合SpringBoot2.0+MyBatis+druid+PageHelper
    SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍
    @getMapping与@postMapping
    701搜商家电话直通 网络黄页完成“终极使命”
    根据经纬度计算距离
    微网站
  • 原文地址:https://www.cnblogs.com/kingthy/p/902234.html
Copyright © 2011-2022 走看看