.NET中的字符串你了解多少?

jopen 10年前

字符串的特性

</div>
1.不可变性
       由于字符串是不可变的的,每次修改字符串,都是创建了一个单独字符串副本(拷贝了一个字符串副本)。之所以发生改变只是因为指向了一块新的地址。
       ps:vs2005  即时窗口  &变量,取地址。。
              vs2010以上  即使窗口  *变量 ,只取堆地址。
2.字符串池(只针对字符串常量)
      当一个程序中有多个相同的字符串常量时,多个变量指向的是内存中同一块字符串!这个特性叫字符串池。之所以字符串,不会造成程序混乱,是因为字符串的不可变性。

String的成员方法和属性

</div>

PS:这里重载方式很多,不一一列举。

1.Contains(String str)  判断字符串中是否包含,指定字符串。

    用法

      string str =”helloworld”;

      str.Contains(“hello”);   //true

2.StartsWith(String str)

          判断字符串对象是否以,指定字符串开头。

3.EndWith(String str)

         判断字符串对象是否以,指定字符串结尾。

4.Length 属性

         获取字符串的长度

5.IndexOf(String str)

         获取指定字符/字符串…..在对象字符串中第一次出现的位置。

6.LastIndexOf(String str)

         获取指定字符/字符串….在对象字符串中最后一次 出现的位置。

7.SubString(int start)

   SubString(int strat, int length)   从指定位置,截取字符串。

8.ToLower()

        将串转换成小写,返回一个新的全小写的字符串。

9.ToUpper()

       将串转换成大写,返回一个新的全大写的字符串。

10. Replace(string oldStr,string newStr)

        用新的字符串,替换对象字符串中老的字符串部分。

11.Trim()   去掉对象字符串两端的空格

        TrimStart() 去掉对象字符串 开头的空格

        TrimEnd()  去掉对象字符串  结尾的空格

        PS:如果想去掉其他的开头结尾的其他字符其他的字符,可以采用Trim()的其他重载。

12.Split()     把对象字符串,按照指定字符分割成一个字符串数组!

     Split()    的重载同样很多,

     例如 Split(new char[]{‘|’}, StringSplitOption.RemoveEmptyEntries)// 删除空数据

String的静态方法

</div>

1.IsNullOrEmpty(string)

       //string.IsNullOrEmpty(str1) 判断某字符串是否为null,或者为空字符串。

2.Equals(string,string,StringComparison.OrdianlIgnore)
        忽略大小写比较两个字符串是否相同。
3.Join(string,string[])
        把一个数组按照指定字符串,拼接成一个字符串。
  来源:大黑兔