一个关于StringBuilder延伸类

在实际应用当中无论写什么样的软件、项目、或者写一个简单程序很多时候都会用到字符串操作。

下面简单介绍一下用System.Text.StringBuilder (简称SB)实现字符串累加等操作。

这个类实现了很基本很简单的方法,但是在生成代码或者模板代码的时候发挥重要作用。

声明:咋一看是标题党来了,没有什么别的目的,只觉得好玩,刚好标题是简称或者同声词。

欢迎大家拍砖,或许你有更强大处理相关功能的类,希望也能分享一下,留下链接什么的也可以。

不多说了,直接上代码。

   /// <summary>
    /// 字符串增加类
    /// </summary>
    public class StringPlus
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public StringPlus()
        {
            sb = new StringBuilder();
        }

        private StringBuilder sb;

        /// <summary>
        /// 在结尾追加
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public string Append(string text)
        {
           sb.Append(text);
            return sb.ToString();
        }

        /// <summary>
        ///  在结尾追加一行
        /// </summary>
        /// <returns></returns>
        public string AppendLine()
        {
            sb.Append("\r\n");
            return sb.ToString();
        }

        /// <summary>
        /// 在结尾追加一行内容
        /// </summary>
        /// <param name="text">输入的文本</param>
        /// <returns></returns>
        public string AppendLine(string text)
        {
            sb.Append(text);
            sb.Append("\r\n");
            return sb.ToString();
        }
        /// <summary>
        /// 添加附带缩进空格字符串累加
        /// </summary>
        /// <param name="spaceNum">空格数</param>
        /// <param name="text">空格文本</param>
        /// <returns></returns>
        public string AppendSpace(int spaceNum, string text)
        {
            sb.Append(Space(spaceNum));
            sb.Append(text);
            return sb.ToString();
        }

        /// <summary>
        /// 添加添加附带缩进空格和空行的字符串累加
        /// </summary>
        /// <param name="spaceNum">空行数</param>
        /// <param name="text">文本</param>
        /// <returns></returns>
        public string AppendSpaceLine(int spaceNum, string text)
        {
             sb.Append(Space(spaceNum));
             sb.Append(text);
             sb.Append("\r\n");
            return  sb.ToString();
        }

        /// <summary>
        /// 删除最后一个字符
        /// </summary>
        /// <param name="strchar">输入字符串</param>
        public void DeleteLastChar(string strchar)
        {
            string str = sb.ToString();
            int length = str.LastIndexOf(strchar);
            if (length > 0)
            {
                 sb = new StringBuilder();
                 sb.Append(str.Substring(0, length));
            }
        }

        /// <summary>
        /// 删除最一个逗号
        /// </summary>
        public void DeleteLastComma()
        {
            string str =  sb.ToString();
            int length = str.LastIndexOf(",");
            if (length > 0)
            {
                 sb = new StringBuilder();
                 sb.Append(str.Substring(0, length));
            }
        }

        /// <summary>
        /// 移除指定字符串
        /// </summary>
        /// <param name="start">开始索引位置</param>
        /// <param name="num">长度</param>
        public void Remove(int start, int num)
        {
            sb.Remove(start, num);
        }

        /// <summary>
        /// 添加附带空格缩进
        /// </summary>
        /// <param name="spaceNum">空格数</param>
        /// <returns></returns>
        public string Space(int spaceNum)
        {
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < spaceNum; i++)
            {
                builder.Append("\t");
            }
            return builder.ToString();
        }

        /// <summary>
        /// 重写ToString()方法
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            return sb.ToString();
        }

        /// <summary>
        /// 获取字符串内容
        /// </summary>
        public string Value
        {
            get
            {
                return  sb.ToString();
            }
        }
    }
posted on 2010-10-22 15:23  陈国利  阅读(1642)  评论(0编辑  收藏  举报