StringBuilder br=new StringBuilder(str);
一旦StringBuilder对象创建,你就可以通过其Append、Insert和Replace方法修改字符串的值,特别是前两个方法,系统已经对其重载了适合各种参数的形式,你使用它们可以非常方便地向字符串增加数据。修改完后你可以将结果通过其ToString方法返回给普通的字符串对象:
str=br.ToString();
StringBuilder使用起来就好像是一个字符串加工厂,首先字符串由构造参数传入,然后经由Append、Insert方法处理后,再由ToString方法返回结果。具体示例如下:
using System;
using System.Text;
public class My
{
static void Main()
{
string str=String.Empty;
StringBuilder sb=new StringBuilder(str);
//追加数据
sb.Append("意大利美食:");
sb.Append('(');
sb.Append(1);
sb.Append(')');
sb.AppendFormat("意大利{0}","炒饭");
//显示结果
Console.WriteLine("{0}字符:{1}",sb.Length,sb.ToString());
//按索引在最后插入
sb.Insert(sb.Length,"(2)米兰式通心粉");
//替换
sb.Replace('粉','面');
//按索引删除前三个字符
sb.Remove(0,3);
sb.Replace("米兰式","威尼斯");
str=sb.ToString();
//显示结果
Console.WriteLine("{0}字符:{1}",str.Length,str);
}
}
运行结果:
14字符:意大利美食:(1)意大利炒饭
20字符:美食:(1)意大利炒饭(2)威尼斯通心面
从上例不难看出,使用StringBuilder可以非常方便地修改字符串数据,这种方便很大一部分原因是因为StringBuilder很多方法都有各种参数的重载形式,比如Append和Insert方法,几乎支持任何类型数据的追加和插入,在使用时要特别注意这一点。
类型运算。
关于类型的一些操作,最重要的就是类型之间的转换。类型之间的转换可以分为两种情况来讨论,分别是值类型之间的转换和引用类型之间的转换。值类型之间的转换比较简单,关键是引用类型之间的转换。我们知道基类的引用可以指向子类的对象,相互继承的几个类实例之间存在着这种关系。
类型转换
我们知道值类型之间存在两种转换方式,一种是默认自动转换,一种是强制转换。那么引用类型之间是否也存在这两种转换呢?你有没有考虑过引用类型和值类型之间的类型转换?事实上引用类型和值之间也存在类型转换。这些类型转换都是C#的语法,如前所述,类型之间的可转换性增加了程序语言的灵活性,它们是程序语言语法优秀的组成部分。
StringBuilder br=new StringBuilder(str);
一旦StringBuilder对象创建,你就可以通过其Append、Insert和Replace方法修改字符串的值,特别是前两个方法,系统已经对其重载了适合各种参数的形式,你使用它们可以非常方便地向字符串增加数据。修改完后你可以将结果通过其ToString方法返回给普通的字符串对象:
str=br.ToString();
StringBuilder使用起来就好像是一个字符串加工厂,首先字符串由构造参数传入,然后经由Append、Insert方法处理后,再由ToString方法返回结果。具体示例如下:
using System;
using System.Text;
public class My
{
static void Main()
{
string str=String.Empty;
StringBuilder sb=new StringBuilder(str);
//追加数据
sb.Append("意大利美食:");
sb.Append('(');
sb.Append(1);
sb.Append(')');
sb.AppendFormat("意大利{0}","炒饭");
//显示结果
Console.WriteLine("{0}字符:{1}",sb.Length,sb.ToString());
//按索引在最后插入
sb.Insert(sb.Length,"(2)米兰式通心粉");
//替换
sb.Replace('粉','面');
//按索引删除前三个字符
sb.Remove(0,3);
sb.Replace("米兰式","威尼斯");
str=sb.ToString();
//显示结果
Console.WriteLine("{0}字符:{1}",str.Length,str);
}
}
运行结果:
14字符:意大利美食:(1)意大利炒饭
20字符:美食:(1)意大利炒饭(2)威尼斯通心面
从上例不难看出,使用StringBuilder可以非常方便地修改字符串数据,这种方便很大一部分原因是因为StringBuilder很多方法都有各种参数的重载形式,比如Append和Insert方法,几乎支持任何类型数据的追加和插入,在使用时要特别注意这一点。
类型运算。
关于类型的一些操作,最重要的就是类型之间的转换。类型之间的转换可以分为两种情况来讨论,分别是值类型之间的转换和引用类型之间的转换。值类型之间的转换比较简单,关键是引用类型之间的转换。我们知道基类的引用可以指向子类的对象,相互继承的几个类实例之间存在着这种关系。
类型转换
我们知道值类型之间存在两种转换方式,一种是默认自动转换,一种是强制转换。那么引用类型之间是否也存在这两种转换呢?你有没有考虑过引用类型和值类型之间的类型转换?事实上引用类型和值之间也存在类型转换。这些类型转换都是C#的语法,如前所述,类型之间的可转换性增加了程序语言的灵活性,它们是程序语言语法优秀的组成部分。