String Build类的使用
StringBuilder类的定义
StringBuilder类位于命名空间System.Text中,使用时,可以在文件头通过using语句引入该空间:
using System.Text;
声明StringBuilder对象需要使用new关键字,并可以对其进行初始化。
例如:
StringBuilder strBuilder = new StringBuilder(“Hello World”);
该语句声明了一个StringBuilder对象strBuilder,并初始化为“Hello World”。
如果不使用using关键字在文件头引入System.Text命名空间,也可以通过空间限定来声明StringBuilder对象。
例如:
System.Text.StringBuilder strBuilder = new StringBuilder(“Hello World”);
注意:在声明时,也可以不给出初始值,然后通过其方法进行赋值。
设置StringBuilder类的容量
虽然StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是用户可以为它可容纳的最大字符数指定一个值。此值称为该对象的容量,不应将它与当前StringBuilder对象容纳的字符串长度混淆在一起。
例如,可以创建StringBuilder类的带有字符串“Hello”(长度为5)的一个新实例,同时可以指定该对象的最大容量为25。当修改StringBuilder时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。StringBuilder默认初始分配16个字符长度。
追加操作
追加一个StringBuilder是指将新的字符串添加到当前StringBuilder字符串的结尾处,可以使用Append和AppendFormat方法来实现这个功能。
编写程序,实现对字符串的追加操作。
using System;
using System.Text;
namespace Project18
{
class Program
{
static void Main(string[] args)
{
//初始化StringBuilder类
StringBuilder str = new StringBuilder("好好学习,天天向上!");
//追加对应的字符串
Console.WriteLine("====================Append====================");
Console.WriteLine(str.Append("英语:Study hard and get up every day"));
//利用插入进行换行
Console.WriteLine("====================Insert====================");
Console.WriteLine(str.Insert(10,"\n"));
//利用移除取消换行
Console.WriteLine("====================Remove====================");
Console.WriteLine(str.Remove(10,1));
//替换“英语”为“翻译”
Console.WriteLine("====================Replace===================");
Console.WriteLine(str.Replace("英语","翻译"));
Console.WriteLine("=================AppendFormat=================");
int score = 95;
Console.WriteLine(str.AppendFormat("英语成绩:{0:F}",score));
Console.ReadKey();
}
}
}
【程序分析】本例演示了对字符串的追加操作。在代码中,首先实例化StringBuilder类的对象strb1,并初始化为“Hello”;接着,使用Append方法,为字符串后面再追加字符串“World”;然后再实例化一个对象strb2,并初始化;最后调用AppendFormat方法,对追加部分的字符串进行格式化。
====================Append====================
好好学习,天天向上!英语:Study hard and get up every day
====================Insert====================
好好学习,天天向上!
英语:Study hard and get up every day
====================Remove====================
好好学习,天天向上!英语:Study hard and get up every day
====================Replace===================
好好学习,天天向上!翻译:Study hard and get up every day
=================AppendFormat=================
好好学习,天天向上!翻译:Study hard and get up every day英语成绩:95.00
插入操作
StringBuilder的插入操作是指将新的字符串插入到当前的StringBuilder字符串的指定位置,如“Hello”变为“Hellllo”。可以使用StringBuilder类的Insert方法来实现这个功能。
其语法格式如下:
public StringBuilder Insert(int index, object value);
其中,参数index指定所要插入的位置,并从0开始索引,如index=1,则会在原字符串的第2个字符之前进行插入操作;同Append一样,参数value并不仅是只可取字符串类型。
删除操作
可以使用Remove方法从当前StringBuilder中移除指定数量的字符,移除过程从指定的从零开始的索引处开始。
其语法格式如下:
public StringBuilder Remove(int startIndex, int length);
其中,参数startIndex指定所要删除的起始位置,其含义同Insert中的index相同;length参数指定所要删除的字符数量。
替换操作
使用Replace方法,可以用另一个指定的字符来替换StringBuilder对象内的字符。该方法有两种重载方式,其语法格式如下:
public StringBuilder Replace(char oldChar, char newChar);
public StringBuilder Replace(string oldValue, string newValue);
其中,参数oldChar和oldValue为待替换的字符和子串,而newChar和newValue为替换后的新字符和新子串。