C#字符串。

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);
        }
    }

 

posted @ 2019-03-11 15:27  张玉昊  阅读(457)  评论(2编辑  收藏  举报