更新时间:2022-09-08 15:53:19
不可变String
String对象是不可变的。
String类中的每一次看起来会修改String值的方法,实际上都是创建了一个新的String对象。
重载 "+"与StringBuilder
String mango = "mango";
String s = "abc" + mango + "def"+ 47;
String对象重载的"+操作符在应用与特定的类时,被赋予特殊的意义。
编译器自动引入java.lang.StringBuilder类。创建一个StringBuilder独享,用以构建最终的String,并为每个字符串调用一次StringBuilder的append()方法,总计四次,最后调用toString()生成结果。
String的操作
构造器:创建String对象
length():String中的字符的个数
charAt():取得String中该索引位置上的char
getChars(),getBytes():复制char或byte到一个目标数组中
toCharArray():生成一个char[],包含String的所有字符
equals(),equalsIgnoreCase():比较两个String的内容是否相等
compareTo():按词典顺序比较String的内容,比较结果为负数、零或整数,大小写并不等价
contains():如果该String对象包含参数的内容,则返回true
contentEquals():如果该String与参数的内容完全一致,则返回true
equalsIgnoreCase():忽略大小写,如果两个String的内容相同,则返回true
regionMatcher():返回boolean结果,以表明所比较区域是否相等
startWith():返回boolean结果,以表明该String是否以此参数起始
endsWith():返回boolean结果,以表明此参数是否该字符串的后缀
indexOf(),lastIndexOf():如果该String并不包含此参数,则返回-1;否则返回此参数在String中的起始索引。lastIndexOf是从后向前搜索
substring()(subSequence()):返回一个新String,已包含参数指定的子字符串
concat():返回一个新String,内容为原始String连接上参数String
replace():返回替换字符后的新String,如果没有替换发生,则返回原始的String
toLowerCase() toUperCase():将字符的大小写改版后,返回一个新String,如果没有发生改变,则返回原始的String
trim():将String两端的空白字符删除后,返回一个新String,如果没有发生改变,返回原始String
valueOf():返回一个表示参数内容的String
intern():为每个唯一的字符串序列生成一个且仅生成一个String引用