类似于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;
    }

}

本文转自Kingthy博客园博客,原文链接:http://www.cnblogs.com/kingthy/archive/2007/09/22/902234.html ,如需转载请自行联系原作者
相关文章
|
9月前
鸿蒙开发:wrapBuilder来封装全局@Builder
首先第一点,在同一个UI组件内,同一个wrapBuilder只能初始化一次,第二点就是WrappedBuilder对象的builder属性方法只能在struct内部使用。
272 7
|
消息中间件 存储 监控
MQ线上大规模消息堆积问题处理及使用场景详解
【11月更文挑战第21天】在如今的高并发互联网应用中,消息队列(Message Queue,简称MQ)扮演着至关重要的角色
867 1
|
11月前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
1714 12
|
XML SQL JSON
推荐 9 个 爱不释手的 JSON 工具!
【51CTO.com快译】JSON(JavaScript对象标注)是一种流行的轻量级数据交换格式,在网络上已很常见。众所周知,JSON让开发人员易于使用,又让机器易于解析和生成。 JSON吸引了工具构建者的注意,它们开发了用于重新格式化、验证和解析JSON的众多工具,这不足为奇。这些工具既有在Web浏览器中运行的在线实用程序,又有面向代码编辑器和IDE的插件,比如Visual Studio Code和Eclipse。 下面介绍了其中九款工具。
1872 0
|
机器学习/深度学习 算法 数据处理
离散Hopfield网络-1|学习笔记
快速学习离散Hopfield网络-1
离散Hopfield网络-1|学习笔记
|
存储 缓存 Shell
Python - poetry(2)命令介绍(下)
Python - poetry(2)命令介绍(下)
1221 0
Python - poetry(2)命令介绍(下)
|
Web App开发 云安全 人工智能
阿里云acp考试报名方法是什么?阿里云acp考试报名条件是什么?
阿里云acp考试报名方法是什么?阿里云acp考试报名条件是什么?本文主要讲述了关于阿里acp考试报名的流程及所具备的条件
1190 0
阿里云acp考试报名方法是什么?阿里云acp考试报名条件是什么?
|
缓存 iOS开发
iOS应用程序生命周期(前后台切换,应用的各种状态)详解
iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验。
1065 0