【string类型】C#string介绍

欢迎大家一起学习

目录

文章目录

前言

一、初始化

二、字符串池

三、可变字符串

总结



前言

本篇介绍了C#中string的一些基础内容


提示:以下是本篇文章正文内容,下面案例可供参考

一、初始化

            string s1 = "八戒";
            string s2 = "八戒";//同一个字符串

            string s3 = new string(new char[] { '八', '戒' });
            string s4 = new string(new char[] { '八', '戒' });
            bool r1 = object.ReferenceEquals(s1, s2);

            object o1 = 1;
            o1 = 2.0;//每次修改,都是重新开辟新的空间存储数据,替换栈中引用

二、字符串池

//字符串池  
            /*
             字符串常量在创建前,首先会在字符串池中查找是否存在相同的文本,如果存在,则直接返回
            该对象引用;如果不存在,则开辟空间
            目的:提高内存利用率
            字符串具有不可变性
            字符串常量一旦进入内存,就不得再次改变。因为如果在原位置改变会使其他对象内存被破坏 导致内存泄露。当遇到字符串变量引用新值时,会在内存中新建一个字符串,将该字符串地址交由该变量引用
             */

string strNumber = "";
            for(int i=0;i<10;i++)
            {
                //      ""+"0"
                //      "0"+"1"每次拼接产生新的对象 替换引用(原有数据成为1个垃圾)
                strNumber = strNumber + i.ToString();
            }

三、可变字符串


            //可变字符串  一次开辟可以容纳10个字符大小的空间
            //优点:避免产生垃圾,可以在原有空间修改字符串,你得用的得当要不然也会产生垃圾
            //适用性:频繁对字符串操作(增,删,改)

StringBuilder builder = new StringBuilder(10);
            for(int i=0;i<10;i++)
            {
                builder.Append(i);
            }
            builder.Append("俺老孙来也");//虽然满了但是也能进的来,复制原有数据转移到新的存储
            //位置,最后把引用替换掉
            string result = builder.ToString();
            //builder.Insert();指定位置插入 builder都可以在原有内存进行修改
            //builder.Replace();替换字符
            //builder.Remove();移除
            builder.Insert(0, "builder");
            s1 = s1.Insert(0, "s1");//跟原来一样,开辟新内存替换引用
            /*
             * 字符串常用方法
             * ToArray,Insert,Contains,ToLower,ToUpper,IndexOf,Substring,Trim,Split
             * Replace,Join
             */

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了string的使用

你可能感兴趣的:(c#,开发语言,其他,后端)