string str="123"; //其实在内存中开辟一个空间,创建了一个String类型的对象 String str1=new String(new char[]={‘1‘,‘2‘,‘3‘});
1.字符串可以看做成一个string数组
char c=str[0];
2.str,length可以表示字符串的字符个数
3.字符串一旦被创建就不能被修改
在创建字符串对象时,会先去字符串拘留池中寻找是否有相同的内容的对象,如果没有再去创建
字符串在内存中存储在字符串拘留池中,当被重新赋值是,变量名指向新的对象,而当前对象会保留,一旦有对象存储相同内容是,将它指向旧的字符串。
4.字符串对象一旦被创建,不会被GC回收
5常用操作
string.Empty代表一个空串"",强调不是指null;
//判断指定字符串是否以指定的字符技术 bool a=str.Endwith("2"); //Equals 判断两个指定的字符串的内容是否相同 //Format格式化字符串 string s=string.Format("我爱{0},你爱{1}","你",他);
•Length
•方法
•IsNullOrEmpty() 静态方法,判断为null或者为””
•ToCharArray() 将string转换为char[]
•ToLower() 小写,必须接收返回值。(因为:字符串的不可变);
•ToUpper() 大写
•Equals() 。。。。
•IndexOf() 如果没有找到对应的数据,返回-1
•LastIndexOf() 如果没有找到对应的数据,返回-1
•Substring() //2个重载
•Split()
•Join() 静态方法
•Format () 静态方法
•Replace() Trim()
6.字符串连接
直接连接时每次连接都会在内存中创建一个对象,连接效率底下
而在System.text空间下,的StringBulider可以很好的解决连接效率问题
StringBulider sb=new StringBuilder(); sb.append("a");
sb对象时可变的,当改变这个对象的字符串时不回去新开空间 而是直接改变
时间: 2024-10-11 13:42:55