String

ToUpper()

  • 作用:将字符转换成大写形式,仅对字母有效。返回值是转换后的字符串。
  • 使用:字符串变量.方法名();
  • 例如:name.ToUpper();

ToLower()

  • 作用:将字符转换成小写形式,仅对字母有效。返回值是转换后的字符串。
  • 使用:字符串变量.方法名();
  • 例如:name.ToUpper();

Equals()

  • 作用:比较两个字符串是否相同。相同返回真,不相同返回假。
  • 使用:字符串变量.方法名(要比较的字符串变量);
  • 例如:name.Equals(name2);

Split()

  • 作用:分割字符串。返回字符串类型的数组。
  • 使用:字符串变量.方法名(用于分割的字符数组);
  • 例如:name3.Split(m_char);

Substring()

  • 作用:截取字符串。返回截取后的子串。
  • 使用:字符串变量.方法名(开始截取的位置);
  • 字符串变量.方法名(开始截取的位置,截取多长);
  • 例如:
    • name.Substring(2); //从角标为 2 的位置,截取到最后;
    • name.Substring(2,2); //从角标为 2 的位置,截取 2 个字符;

IndexOf()

  • 作用:查找某个字符串在字符串中第一次出现的位置。返回所在的索引位置值。如果没有找到,返回-1。
  • 使用:字符串变量.方法名(子字符串);
  • 例如:name.IndexOf(“on”);

LastIndexOf()

  • 作用:查找某个字符串在字符串中最后一次出现的位置。返回所在的索引位置值。如果没有找到,返回-1。
  • 使用:字符串变量.方法名(子字符串);
  • 例如:name.IndexOf(“on”);

StartsWith()

  • 作用:判断是否以...字符串开始。如果是,返回真;如果不是,返回假。
  • 使用:字符串变量.方法名(子字符串);
  • 例如:name.StartsWith(“Mo”);

EndsWith()

  • 作用:判断是否以...字符串结束。如果是,返回真;如果不是,返回假。
  • 使用:字符串变量.方法名(子字符串);
  • 例如:name.EndsWith(“key”);

Replace()

  • 作用:将字符串中的某个字符串替换成一个新的字符串。返回新的字符串。
  • 使用:字符串变量.方法名(旧字符串,新字符串);
  • 演示:name.Replace(“Mon”, “CODE”);

Contains()

  • 作用:判断某个字符串中是否包含指定的字符串。如果包含返回真,否则返回假。
  • 使用:字符串变量.方法名(子字符串);
  • 例如:name.Contains(“key”);

Trim()

  • 作用:去掉字符串中前后空格。返回处理后的字符串。
  • 使用:字符串变量.方法名();
  • 例如:address.Trim();

TrimEnd()

  • 作用:去掉字符串结束后的空格。返回处理后的字符串。
  • 使用:字符串变量.方法名();
  • 例如:address.TrimEnd();

TrimStart()

  • 作用:去掉字符串开始前的空格。返回处理后的字符串。
  • 使用:字符串变量.方法名();
  • 例如:address.TrimStart();

IsNullOrEmpty()

  • 作用:判断一个字符串是否为 Null 或者空。如果为 null 或者空,返回真;否则返回假。null 是不占内存空间的,而空字符串(“”)是占内存空间的。
  • 使用:string.方法名(字符串变量);
  • 例如:string.IsNullOrEmpty(name);

Length()

  • 作用:获取字符串字符的个数。
  • 使用:字符串变量.方法名();
  • 例如:adress.Length();

Format()

  • 作用:将字符串按照某种格式输出,{数字}为占位符,从0开始,“,”后面为占位符的变量
  • 使用:String.Format(要格式化的字符串);
  • 例如:String.Format("{0:yyyy年MM月dd日 HH:mm}", “2020-05-11”);

字符串特点

  • 字符串是引用类型,他的数据是存储在堆空间,在栈空间中存储了该数据的引用地址。
  • 字符串是不可变的,当你给一个字符串变量重新赋值时,旧值并没有销毁,而是重新开辟一块空间来存储新值。
  • 字符串可以看做是是只读的字符数组,使用字符串变量[下标]的形式可以取字符串中指定的字符,也可以使用 for 循环变量数组。

StringBuilder

应用场景

  • 当需要对一个字符串变量重复赋值或拼接时,在内存中会重新分配内存,产生大量的垃圾数据信息(由于string特殊的引用类型性质),当重复赋值的频率很高时,执行的效率就会降低。
  • StringBuilder在创建的时候就会定义一个较大的空间,只有满的时候才会动态扩容,产生gc的频率会降低。

使用方法

  • 创建 StringBuilder 类型的对象
    • StringBuilder sb = new StringBuilder(); //创建一个对象。
    • 注意:StringBuilder 依赖 System.Text 命名空间。
  • 往StringBuilder中追加数据
    • sb.Append(i);
    • sb.AppendFormat("{0}+{1}",100,999);
  • 往StringBuilder中指定位置插入数据
    • sb.Insert(0,"aaa");
  • 删除StringBuilder中指定位置开始指定长度的数据
    • sb.Remove(0,10);
  • 清空StringBuilder中的数据
    • sb.Clear();
  • 查看StringBuilder的当前容量
    • sb.Capacity
  • 获取StringBuilder的长度
    • sb.Length
  • 查看StringBuilder某个位置的数据
    • sb[0]
  • 修改StringBuilder某个位置的数据
    • sb[0] = 'a';
  • 替换StringBuilder中的数据
    • sb.Replace('a','b');