zoukankan      html  css  js  c++  java
  • 21.string字符串

    string的不可变性

    字符串是不可变的。
    例如:

    string s = "abcd";
    s = "efgh";
    

    上述代码内存如图所示,当为变量s赋上新值时,会重新开辟一块空间存放新值,并将原来的引用指向这个新开辟的空间。而没有引用指向的空间则会通过垃圾回收机制进行回收。

    string s1 = "abcd";
    string s2 = "abcd";
    

    上述代码内存图如图所示,当为变量赋上值时,会重新开辟一块空间存放新值,当s1的值为abcd时,s2也要赋值为abcd时,在内存中s1和s2所指向的空间相同。

    可以通过debug进行验证,debug->windows->immediate(ctrl+alt+I)并在Immediate Windows输入“&变量名”

    运行代码进行验证:

    常用方法

    1)、Length:获得当前字符串中字符的个数
    2)、ToUpper():将字符转换成大写形式
    3)、ToLower():将字符串转换成小写形式
    4)、Equals(lessonTwo,StringComparison.OrdinalIgnoreCase):比较两个字符串,可以忽略大小写
    5)、Split():分割字符串,返回字符串类型的数组。
    6)、Substring():截取字符串。在截取的时候包含要截取的那个位置。
    7)、IndexOf():判断某个字符串在字符串中第一次出现的位置,如果没有返回-1、值类型和引用类型在内存上存储的地方不一样。
    8)、LastIndexOf():判断某个字符串在字符串中最后一次出现的位置,如果没有同样返回-1
    9)、StartsWith():判断以....开始
    10)、EndsWith():判断以...结束
    11)、Replace():将字符串中某个字符串替换成一个新的字符串
    12)、Contains():判断某个字符串是否包含指定的字符串
    13)、Trim():去掉字符串中前后的空格
    14)、TrimEnd():去掉字符串中结尾的空格
    15)、TrimStart():去掉字符串中前面的空格
    16)、string.IsNullOrEmpty():判断一个字符串是否为空或者为null
    17)、string.Join():将数组按照指定的字符串连接,返回一个字符串。

    更多方法请参考官方文档

    补充

    当我们在项目中需要对字符串进行大量的拼接赋值操作时,这时使用string就会开辟大量的内存空间,造成空间的浪费。这时我们就可以使用StringBuilder类,其表示可变字符串
    官方文档

  • 相关阅读:
    周六,晴转雨
    时间概念
    2014-7-24-早
    2014-7-22
    [SPM_LAB]持续集成实验
    [软件测试_LAB2]使用Selenium进行自动化测试
    [软件测试_hw3]路径覆盖测试
    [软件测试_LAB1]安装junit和hamcrest及其使用
    [软件测试_hw2]Failure&Error
    [SPM_hw1]记一次项目经历
  • 原文地址:https://www.cnblogs.com/lz32158/p/12907008.html
Copyright © 2011-2022 走看看