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”