Previous topicNext topic
Help > 开发指南 > 编程基础 > 数据处理 > 字符串 >
StringBuilder

常用方法

Append 向此实例追加指定的 64 位无符号整数的字符串表示形式。
AppendFormat 向此实例追加通过处理复合格式字符串(包含零个或更多格式项)而返回的字符串。 每个格式项都使用指定的格式提供程序替换为单个参数的字符串表示形式。
AppendJoin 使用各成员之间指定的分隔符连接所提供的对象数组中的元素的字符串表示形式,然后将结果附加到字符串生成器的当前实例。
AppendLine(String) 将后面跟有默认行终止符的指定字符串的副本追加到当前 StringBuilder 对象的末尾。
Clear() 从当前 StringBuilder 实例中移除所有字符。
Insert(Int32, Boolean) 将布尔值的字符串表示形式插入到此实例中的指定字符位置。
Remove(Int32, Int32) 将指定范围的字符从此实例中移除。
Replace(String, String) 将此实例中出现的所有指定字符串的替换为其他指定字符串。
ToString() 将此实例的值转换为 String

Vb.Net
'创建一个预期可容纳50个字符的StringBuilder。
'用“ABC”初始化StringBuilder。
Dim sb As StringBuilder = New StringBuilder("ABC", 50)
'在StringBuilder的末尾添加三个字符(D、E和F)。
sb.Append(New Char() {"D"c, "E"c, "F"c})
'将格式字符串附加到StringBuilder的末尾。
sb.AppendFormat("GHI{0}{1}", "J"c, "k"c)
' 显示StringBuilder及其字符串中的字符数。
Proj.MsgDebug.Add("{0} chars: {1}", sb.Length, sb.ToString())
' 在StringBuilder的开头插入字符串。
sb.Insert(0, "Alphabet: ")
'将所有小写k替换为大写k。
sb.Replace("k"c, "K"c)
'显示StringBuilder及其字符串中的字符数。
Proj.MsgDebug.Add("{0} chars: {1}", sb.Length, sb.ToString())
'单独以一行一行的形式添加一行字符串
sb.AppendLine("这是单独一行")
Proj.MsgDebug.Add(sb.ToString())
' 创建没有文本的StringBuilder对象。
sb = New StringBuilder()
' 添加一些文本。
sb.Append("*"c, 10).Append(" Adding Text to a StringBuilder Object ").Append("*"c, 10)
sb.AppendLine(vbLf)
sb.AppendLine("Some code points and their corresponding characters:")
' 附加一些格式化文本。
For ctr As Integer = 50 To 60
    sb.AppendFormat("{0,12:X4} {1,12}", ctr, Convert.ToChar(ctr))
    sb.AppendLine()
Next
' 查找本专栏介绍的结尾。
Dim pos As Integer = sb.ToString().IndexOf("characters:") + 11 + Environment.NewLine.Length
' 插入列标题。
sb.Insert(pos, String.Format("{2}{0,12:X4} {1,12}{2}", "Code Unit", "Character", vbLf))
' 将StringBuilder转换为字符串并显示。
Proj.MsgDebug.Add(sb.ToString())
'返回结果:11 chars: ABCDEFGHIJk
'返回结果:21 chars: Alphabet: ABCDEFGHIJK
'返回结果:Alphabet: ABCDEFGHIJK这是单独一行
'返回结果:********** Adding Text To a StringBuilder Object **********
'
'Some code points And their corresponding characters:
'
'   Code Unit    Character
'        0032            2
'        0033            3
'        0034            4
'        0035            5
'        0036            6
'        0037            7
'        0038            8
'        0039            9
'        003A            :
'        003B            ;
'        003C            <

C#
//创建一个预期可容纳50个字符的StringBuilder。
//用“ABC”初始化StringBuilder。
StringBuilder sb = new StringBuilder("ABC", 50);

//在StringBuilder的末尾添加三个字符(D、E和F)。
sb.Append(new char[] { 'D', 'E', 'F' });

//将格式字符串附加到StringBuilder的末尾。
sb.AppendFormat("GHI{0}{1}", 'J', 'k');

// 显示StringBuilder及其字符串中的字符数。
Proj.MsgDebug.Add("{0} chars: {1}", sb.Length, sb.ToString());

// 在StringBuilder的开头插入字符串。
sb.Insert(0, "Alphabet: ");

//将所有小写k替换为大写k。
sb.Replace('k', 'K');

//显示StringBuilder及其字符串中的字符数。
Proj.MsgDebug.Add("{0} chars: {1}", sb.Length, sb.ToString());
//单独以一行一行的形式添加一行字符串
sb.AppendLine("这是单独一行");
Proj.MsgDebug.Add(sb.ToString());

// 创建没有文本的StringBuilder对象。
sb = new StringBuilder();
// 添加一些文本。
sb.Append('*', 10).Append(" Adding Text to a StringBuilder Object ").Append('*', 10);
sb.AppendLine("\n");
sb.AppendLine("Some code points and their corresponding characters:");
// 附加一些格式化文本。
for (int ctr = 50; ctr <= 60; ctr++) 
{
    sb.AppendFormat("{0,12:X4} {1,12}", ctr, Convert.ToChar(ctr));
    sb.AppendLine();
}
// 查找本专栏介绍的结尾。
int pos = sb.ToString().IndexOf("characters:") + 11 +
Environment.NewLine.Length;
// 插入列标题。
sb.Insert(pos, String.Format("{2}{0,12:X4} {1,12}{2}", "Code Unit","Character", "\n"));

// 将StringBuilder转换为字符串并显示。
Proj.MsgDebug.Add(sb.ToString());
    
//返回结果:11 chars: ABCDEFGHIJk
//返回结果:21 chars: Alphabet: ABCDEFGHIJK
//返回结果:Alphabet: ABCDEFGHIJK这是单独一行
//返回结果:********** Adding Text to a StringBuilder Object **********
//
//Some code points and their corresponding characters:
//
//   Code Unit    Character
//        0032            2
//        0033            3
//        0034            4
//        0035            5
//        0036            6
//        0037            7
//        0038            8
//        0039            9
//        003A            :
//        003B            ;
//        003C            <