string和stringbuilder

String
string是引用类型
string是一个长度不可变的字符序列,底层是一个被final修饰的char[]数组,所以说,任何对 String 类型进行改变的操作实际上都是重新生成了一个新的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常用方法

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”
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值