Java字符串
不可变String
String类中的每一个看起来会修改string值的方法,实际上都是创建了一个全新的string对象,已包含修改后的内容。而最初的string对象是没变的。
因为string对象具有只读特性,所以指向他的任何引用都不可能改变他的值。
重载“+”与StringBuilder
Java并不允许程序员重载任何操作符,所以“+”与“+=”是Java中仅有的二个重载过得操作符。
在为一个类编写toStriing方法时,如果操作较简单则可以使用“+”或“+=”,若在循环中使用的话,那么最好自己够着一个StringBuilder对象,用来构造最终的结果。
StringBuilder
- append()
- toString()
- delete()
- insert()
- repleace()
- substring()
- reverse()
StringBuffer
String
方法 | 参数、重载版本 | 应用 |
---|---|---|
length() | string中字符的个数 | |
charAt() | int类型的索引 | 得到该索引位置上的char |
toCharArray() | 生成一个char数组 | |
equals()、equalsIgnoreCase() | String类型的参数 | 比较string的内容是否相等 |
compareTo() | string类型的参数 | 按词典顺序比较string的内容,比较结果为负数、零或正数。字母的大小写并不等价。 |
contatins() | 进行比较的charSequence | 如果包含该参数则返回true |
contentEquals() | CharSequence或StringBuffer | 如果该string与参数内容完全一致则返回TRUE |
startWith()、endWiith() | 可能的起始string、可能的后缀string | 返回boolean结果,以表示该string是否以此参数起始/结束 |
indexOf()/lastIndexOf() | char、char与起始索引、string、string与起始索引 | 若该string不包含该参数则返回-1;否则返回改参数在string中的起始索引。lastIndexOf()是从后向前搜索。 |
subString() | 起始索引、起始索引+重终点坐标 | 返回截取的新的字符串 |
concat() | 要连接的string | 返回一个新的string,内容为原来的string加上连接的string |
replace() | char/newChar、CharSequence/newCharSequence | 返回替换后的新的字符串,若没有发生替换则返回原始的string |
toLowerCase()、toUpperCase() | 返回改变大小写后的新字符串,若没有改变则返回原始的string | |
trim() | 将string二端的空白符删除后返回新的字符串,若没有发生改变则返回原始的string对象 | |
valueOf() | Object/char[]/char[]、偏移量、与字符个数/boolean/char/int/long/float/double | 返回一个表示参数内容的String |
intern() | 为每个唯一的字符序列生成一个且仅生成一个string引用 |