C#字符串。
程序员文章站
2024-01-11 09:49:10
string类型不能被继承,它是密封类,sealed。 一、字符串的特性。 1、不可变性。 2、字符串池。 二、常用方法。 方法不一一写出来了。 tringbuilder的使用。 大量拼接字符串的时候用。效率比string高。使用: ......
string类型不能被继承,它是密封类,sealed。
一、字符串的特性。
1、不可变性。
class program { static void main(string[] args) { string str = "hello world!";//一旦创建就不可以被修改。 str.toupper(); //所以这样不可以改变它。 string str1 = str.toupper();//但是可以操作它,这是需要变量接受返回值。 console.writeline(str1);//输出为大写 } }
class program { //下面的例子中,虽然输出是abcx但,任然不违背上面的结论。 static void main(string[] args) { string str = "abc"; //堆中创建abc string str1 = "x";//堆中创建x str = str + str1;//堆中创建abcx,然后把abcx的地址赋值给str,而并不是修改abc。 console.writeline(str); } }
2、字符串池。
class program { static void main(string[] args) { string s1 = "abc";//先在字符串池中找是否有abc,有就把其地址赋给s1,没有就创建一个。 string a = "a"; string b = "b"; string c = "c"; string s2 = a + b + c;//a,b,c是三个变量,并不知道具体的值,所以是执行相加的操作,然后创建新的对象。 //并且该对象不会被加载到池里面。 string s3 = "a" + "b" + "c";// a,b,c是三个具体的值,直接相加后还会向字符串池中找。 } }
二、常用方法。
方法不一一写出来了。
tringbuilder的使用。
大量拼接字符串的时候用。效率比string高。使用:
class program { static void main(string[] args) { string str = "abcd"; stringbuilder stringbuilder = new stringbuilder(); stringbuilder.append(str); console.writeline(stringbuilder); } }