字符串
百知教育学习 -胡鑫喆 -字符串
-
String
- toCharArray() 转成字符数组
- new String(char[] cs) 利用字符数组构造字符串
toUpperCase() /toLowerCase()
大小写转换contains(String s)
判断s字串是否存在startsWith(String s)
判断s字串是否开头endsWith(String s)
判断字符串是否以s字串结尾indexOf(String s)
返回s子串最早出现的下标lastIndexOf(String s)
返回s字串最后出现的下标replace(String s1,String s2)
将s1子串替换成s2子串substring(int a,int b)
返回字符串中a下标到b小标的子串(包含a下标不包含bx下标)length(String s)
长度split(String s)
将字符串以s为分隔符,拆分为多个子串trim()
去除字符串前后的回车与空格,字符串之间的不算
-
String内容不可变:我们可以利用串池去共享字符串对象
字符串常量池是方法区中的一块特别存储区域。当需要创建一个字符串时,如果它的值在字符串常量池中已存在,那么常量池中的该字符串引用将被直接返回,而不会创建一个新的字符串对象返回其引用。
-
声明字符串时优先使用
String s="abc"
而不是String s=new String("abc")
String s=new String("abc")
创建了两个对象 串池里先建一个abc除非已经有一个了 堆空间一个abcs3=s3.intern();
释放掉堆空间里的字符串,改用串池里的String s="a"+"b"+"c"+"d"+"e"+"f";
在编译时就完成了,s的式子不用运算
-
-
字符串连接
StringBuilder
类与String类的区别-
string本身是不可改变的,它只能赋值一次,每一次内容发生改变,都会生成一个新的对象,然后原有的对象引用新的对象,而每一次生成新对象都会对系统性能产生影响,这会降低.NET编译器的工作效率
-
StringBuilder类则不同,每次操作都是对自身对象进行操作,而不是生成新的对象,其所占空间会随着内容的增加而扩充,这样,在做大量的修改操作时,不会因生成大量匿名对象而影响系统性能
-