String 其他常用方法:
length() 返回字符串长度
isEmpty() 返回字符串是否为空
charAt(int index) 返回字符串中第(index+1)个字符
char[] toCharArray() 转化成字符数组
trim() 去掉两端空格
toUpperCase() 转化为大写
toLowerCase() 转化为小写
String concat(String str) //拼接字符串
String replace(char oldChar, char newChar) //将字符串中的oldChar字符换成newChar字符
//以上两个方法都使用了String(char[] value, boolean share);
boolean matches(String regex) //判断字符串是否匹配给定的regex正则表达式
boolean contains(CharSequence s) //判断字符串是否包含字符序列s
String[] split(String regex, int limit) 按照字符regex将字符串分成limit份。
String[] split(String regex)
其中equals 比较更为常用。看一下他的代码,很大限度提高了效率
public boolean equals(Object anObject) {
if (this == anObject) {//判断要比较的对象与当前对象是不是同一个对象,是?直接返回true
return true;
}
if (anObject instanceof String) {//类型是否是String
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {//判断比较对象和当前对象程度
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
replaceFirst、replaceAll、replace区别
String replaceFirst(String regex, String replacement)
String replaceAll(String regex, String replacement)
String replace(CharSequence target, CharSequence replacement)
replace 参数是char和
CharSequence,支持字符和字符串的替换
replaceAll和replaceFirst的参数是regex,即基于规则表达式的替换,
String对“+”的重载
public static void main(String[] args) {
String string="hollis";
String string2 = string + "chuang";
}
然后我们将这段代码反编译:
public static void main(String args[]){
String string = "hollis";
String string2 = (new StringBuilder(String.valueOf(string))).append("chuang").toString();
}
看了反编译之后的代码我们发现,其实String对“+”的支持其实就是使用了StringBuilder以及他的append、toString两个方法