[C#基础]6.String和StringBuilder

Posted on 2009-09-26 12:37  Relax Active  阅读(457)  评论(0)    收藏  举报
 

1string类型

string类型表示 Unicode 字符的字符串。string .NET Framework 中的string的别名。字符串是不可变的。字符串对象一旦被创建,其内容就不能更改。

String类型特征:

1.它是引用类型,在堆上分配内存

2.运算时会产生一个新的实例

3.String 对象一旦生成不可改变(Immutable

尽管string是引用类型,但定义相等运算符(== !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。

示例:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Demo5

{

 

    class Program

    {

        static void Main(string[] args)

        {

            string a = "hello";

            string c = "h";

            c = c+"ello";

            Console.WriteLine(a == c);   

            Console.WriteLine((object)a == (object)c);

        }

    }

}

 

解释:这时将先显示“True”,然后显示“False”,因为字符串的内容是相同的,但是 a c 引用的不是同一个字符串实例。

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Demo5

{

 

    class Program

    {

        static void Main(string[] args)

        {

            string s1 = "a string";

            string s2 = s1;                                //输出结果

            Console.WriteLine("s1 is " + s1);              //s1 is a string

            Console.WriteLine("s2 is " + s2);              //s2 is a string

            s1 = "another string";                      

            Console.WriteLine("s1 is now " + s1);          //s1 is now a anther string

            Console.WriteLine("s2 is now " + s2);          //s2 is now a string

        }

    }

}

 

 

2C#StringBuilder类的使用方法

 

String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。这样增加了系统开销。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类提升性能。

StringBuilder.Append
作用:将信息追加到当前 StringBuilder 的结尾。Append 方法可用来将文本添加到由当前 StringBuilder 对象的字符串的结尾处。下面的示例将一个StringBuilder 对象初始化为“Hello World”,然后将一些文本追加到该对象的结尾处。将根据需要自动分配空间。

StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Append(" What a beautiful day.");
Console.WriteLine(myStringBuilder);

此示例将 Hello World! What a beautiful day. 显示到控制台。

StringBuilder.AppendFormat
作用:用带格式文本替换字符串中传递的格式说明符。 下面的示例使用 AppendFormat 方法,将一个设置为货币值格式的整数值放到 StringBuilder 的末尾。

int myInt = `25;
StringBuilder myStringBuilder = new StringBuilder("Your total is ");
myStringBuilder.AppendFormat("...{0:C} ", myInt);
Console.WriteLine(myStringBuilder);

此示例将   Your total is 25.00 显示到控制台。

StringBuilder.Insert
作用:将字符串插入到当前 StringBuilder 对象的指定索引处,这时注意是索引从零开始记数。Insert 方法将字符串添加到当前 StringBuilder 中的指定位置。下面的示例使用此方法将一个单词插入到 StringBuilder 的第六个位置。

StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Insert(6, "Beautiful ");
Console.WriteLine(myStringBuilder);

此示例将 Hello Beautiful World! 显示到控制台。

StringBuilder.Remove
作用:从当前 StringBuilder 对象中移除指定数量的字符。移除过程从指定的从零开始的索引处开始。下面的示例使用 Remove 方法缩短 StringBuilder

StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Remove(5,7);
Console.WriteLine(myStringBuilder);

此示例将 Hello 显示到控制台。

StringBuilder.Replace
作用:替换指定索引处的指定字符。下面的示例使用 Replace 方法来搜索 StringBuilder 对象,查找所有的感叹号字符 (!),并用问号字符 (?) 来替换它们。

StringBuilder myStringBuilder = new StringBuilder("Hello World!");
myStringBuilder.Replace('!', '?');
Console.WriteLine(myStringBuilder);

此示例将 Hello World? 显示到控制台。

string.Concat用法
string.Concat作用:是连接 String 的一个或多个实例。下面的示例演示的是连接指定的 String 数组。

string a = "A";
string b = "B";
string c = "C";
string d = "D";
Console.WriteLine(string.Concat(new string[] ...{ a,b,c,d}));

此示例将 ABCD 显示到控制台

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3