string和stringbuilder

String
string是引用类型
string是一个长度不可变的字符序列,底层是一个被final修饰的char[]数组,所以说,任何对 String 类型进行改变的操作实际上都是重新生成了一个新的String对象,然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间,所以经常改变内容的字符串最好不要用 String 。

static void Main(string[],args)
{
	string str = "123";//定义并初始化一个string类型变量str
  
  //string.Format()自定义字符格式
  str += string.Format("{0},{1}",123,123);//str = "123123123"

	//str.IndexOf查找字符串在str中的下标位置,找不到返回-1
  Console.WriteLine(str.IndexOf("23"));//输出1

  //str.LastIndexOf从后往前查找字符串在str中的下标位置,找不到返回-1
  Console.WriteLine(str.LastIndexOf("23"));//输出7

  //str.Remove移除指定位置的字符串,返回一个移除该字符串后的字符串
  Console.WriteLine(str.Remove(2));//输出12  (移除第二个字符后的所有字符,3123123被移除了)
  Console.WriteLine(str.Remove(2,2));//输出1223123 (移除第二个字符后的2个字符,31被移除了)

  //str.Replace替换指定字符串,返回替换后的新字符串
  Console.WriteLine(str.Replace("12","21"));//输出213213213 (将字符串中的所有12全换成21了)

  //str.ToUpper将字符串转换为大写字母,str.ToLower字符串转换为小写字母,返回新的字符串
  str = "abc";
  Console.WriteLine(str.ToUpper());//输出 ABC
  Console.WriteLine(str.ToLower());//输出 abc

  //str.Substring截取一段字符串,返回截取的字符串
  Console.WriteLine(str.Substring(1));//输出 bc
	Console.WriteLine(str.Substring(1,1));//输出b (截取第一个字符串后的一个字符串)

  //str.Split字符串切割,返回一个字符串数组。常用于从文件中读取解析文本信息
  str = "a-b-c-d-e";
  string[] strs = str.Split('-');//strs={{a},{b},{c},{d},{e}},字符串按‘-’进行切割
}

stringbuilder
stringbuilder是长度可变的字符序列,创建的时候如果不带参数的话,那么默认的长度就是16,如果带参数的话,那么长度就是16+参数。长度为什么可以变呢,因为底层char[]数组没有被final修饰,所以他们的长度可以发生改变,对字符串进行添加时,当长度超过字符串的长度,那么字符串就会开始扩容,扩容的长度: 原先的长度*2 + 2 。

StringBuilder str = new StringBuilder("123123123",20);//声明20容量并初始化

//str.Capacity该字符对象的容量
Console.WriteLine(str.Capacity)//输出36(20+16)

//str.Length 字符长度
Console.WriteLine(str.Length)//输出9

//str.Append添加字符串,str.AppendFormat自定义增加字符串
Console.WriteLine(str.Append("444"));//输出 123123123444
Console.WriteLine(str.AppendFormat("{0},{1}",1,23));//输出123123123444123

//str.Insert向指定位置插入字符串
Console.WriteLine(str.Insert(1,"00"));输出 10023123123444123 (向第一个字符后面添加"00")

//str.Remove删除字符串,str.Clear清空字符串
Console.WriteLine(str.Remove(1,2))//输出123123123444123 (移除了第一个字符串后面的两个字符)
Console.WriteLine(str.Clear())//输出空

//查和改都可以直接通过下标操作
str = "123123";
str[0] = '0';
Console.WriteLine(str[0])//输出0

//str.Replace替换字符串
Console.WriteLine(str.Replace("1","0"))//输出023023 (str中的1都替换为0)

//str.Equals判断是否相同字符串,该方法继承自object,相等返回true,不等返回false
Console.WriteLine(str.Equals("123123"))//输出false

//str.Trim用于移除字符串两端的空白字符。这些空白字符可以是空格、制表符、换行符等
str = "  123 123\n";
Console.WriteLine(str.Trim());//输出 “123 123”

相关推荐

  1. stringstringbuilder

    2024-03-18 06:52:01       18 阅读
  2. String、StringBufferStringBuilder之间的区别

    2024-03-18 06:52:01       16 阅读
  3. C# 中stringstringbuilder区别

    2024-03-18 06:52:01       12 阅读
  4. String 字符串类编码 以及StringBuilder StringBuffer

    2024-03-18 06:52:01       30 阅读
  5. StringStringBuilderStringBuffer的区别以及应用场景

    2024-03-18 06:52:01       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 06:52:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 06:52:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 06:52:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 06:52:01       18 阅读

热门阅读

  1. Unity转换字符串中文繁简体

    2024-03-18 06:52:01       19 阅读
  2. python图形化编程turtle小乌龟

    2024-03-18 06:52:01       17 阅读
  3. 大语言模型相关工具使用链接

    2024-03-18 06:52:01       21 阅读
  4. LLaMA-2 简介:开源大型语言模型的新篇章

    2024-03-18 06:52:01       19 阅读
  5. Linux初级知识大全(一)

    2024-03-18 06:52:01       21 阅读
  6. Spark 用AnyFunSuite单元测试Scala详细教程

    2024-03-18 06:52:01       17 阅读
  7. 如何杀死服务器出现的僵尸进程

    2024-03-18 06:52:01       23 阅读
  8. ChatGPT:论文写作的新潮解决方案

    2024-03-18 06:52:01       20 阅读
  9. Linux TCP参数——tcp_abort_on_overflow

    2024-03-18 06:52:01       21 阅读