在实际应用当中无论写什么样的软件、项目、或者写一个简单程序很多时候都会用到字符串操作。
下面简单介绍一下用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();
}
}
}