string的相关知识点

string是c#中的类,String是Framework的类,C# string 映射为 Framework的 String。如果用string,编译器会把它编译成String。

string为空的定义方法
    1、string str = null;只定义了一个引用,未分配存储空间。
    2、string str = "";定义一个指针,并在内存中划分一块值为空的存储空间,指针指向这个空间。
    3、string str = string.Empty;定义一个指针,并在内存中划分一块值为空的存储空间,指针指向这个空间,但不会反复的重复申请内存。

判断string变量是否为空的方法
    1、str == String.Empty
    2、str == ""
    3、str.length == 0
    效率:3>1>2

string的一些特性:
    1、不可变性:( string会重复申请内存)
        string是引用类型,当给string赋值时,会在堆中开辟一块空间来存放string,在栈中存放string在堆中的地址。
        在对string对象的实例进行操作时,并不是真的对这个string对象的实例进行修改,而是返回一个新的string对象实例作为操作执行结果。    
        若需要对string对象的实例进行频繁的操作可以使用StringBuider
    2、字符串池(针对字符串常量):
        当程序中有多个相同的字符串的常量时,这些字符串都是指向内存中的同一个字符串。
            如:
                srting str1 = "123";
                string str2 = "123";
                str1与str2所指向的内存存储空间为同一个。
    3、字符串留用:(Intern)
        string s1 = "a";
        string s2 = "b";
        string s3 = "c";
        string s4 = s1+s2+s3;
        string s5 = s1+s2+s3;
        //虽然s4和s5这两个字符串中的内容一样,但是在内存中是两块内存。
        string x1="a";
        string x2="bc";
        string s4=string.intern(s1+s2+s3);
        string s5=string.IsInterned(x1+x2);
        //这个时候,s4和s5在堆中的地址就是一样的。(字符串留用)

string属性:
    Length:        获取字符串的长度;

string操作:

  •     IsNullOrEmpty()      静态的方法,判断为null或者为""
  •     ToCharArray()     将string转换为char[]
  •     ToLower()        转换成小写
  •     ToUpper()        转换成大写
  •     Equals()        比较两个字符串是否相同
  •     IndexOf()      返回某个指定字符串在字符串中首次出现的位置,返回-1则不存在
  •     LastIndexOf()    返回某个指定字符串在字符串中最后出现的位置,返回-1则不存在
  •     Substring()    截取字符串
  •     Split()        分割指定字符分割字符串
  •     Join()        把字符串用指定的符号链接通过占位符莱拼接字符串
  •     Format()        通过占位符莱拼接字符串
  •     Replace()        字符串中字符替换
  •     Trim()        去两边空格


StringBuilder的优越性:
    不需要每次对字符串操作都去分配内存空间,所以系统无需处理垃圾;当对字符串进行多次操作的时候他的效率远远高于string

转载于:https://www.cnblogs.com/on3piece/p/5340149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值