注:(未特殊说明,String变量起名S,int 起名a,b,char起名c)
参考JAVA核心技术,卷一
String
修改字符串 String a=“abcd”;
a=a.substring(0,1)+"pple";
substring(a)
substring(a,b) 从第a开始的b个字符 或者从a开始到结束
length(),返回长度
equals();判断相等
str.length()=0; 等价于 str.equals("");
S1.equalsIgnoreCase(S2) 忽略大小写的相等
S1.endsWith(String S2) 如果S1以S2结尾 返回true
S1.startsWith(String S2) 如果S1以S2开始 返回true
S1.compareTo(String S2) S1<S2返回负数
其他API:
String 的字符索引位置!=代码点索引位置
S1.charAt(i)返回代码点i的代码单元,参考本文“其他”.1
S1.codePointAt(i) 返回第i个字符的代码点
S1.offsetBycodePoints(a,b)返回从第a个代码点,位移b的代码点索引
S1.indexOf(S2)
S1.indexOf(S2,b) 从字符索引b开始计算,第一个与S2匹配的S1的位置(字符索引位置)
S1.indexOf(a)
S1.indexOf(a,b)从字符索引b开始计算,代码点a的字符索引(?)需要测试
S1.lastIndexOf() 同上,最后一个子串。
S1.replace(oldString,newSting)用newString代替所有S1中的子串oldString
S1,codePointCount(a,b),计算代码点索引a,b之间的代码点数量。(边缘值)
函数:S1.toLowerCase()
S1.toUpperCase()
S1.trim()
返回全小写,全大写,去空格的字符串
其他
1)String里字符有些是一个字节,有些是两个字节,因此遍历的时候需要判断字符所在代码点的位置
2)String 变量可以存放null,表明目前该变量没有与任何对象关联(?)
StringBuilder
效率较高(应该是带有额外缓存的String)不用连接字符串的时候额外创建String