(1) 字符串有多种创建方式
String str="天干地支";
String str=new String(new byte[]{-52, -20, -72, -55, -75, -40, -42, -89}, "GBK");(GBK为编码方式)
String str=new String(new char[]{"天""干""地""支"");
String str=new String("天干地支");
(2) ==和equals()的差异
String类型属于引用类型,在引用类型使用==时比较的是内存地址。
equals()的默认方法还是==,但通过子类的重写可实现比较内容。
在String使用equals()时比较的是内容。
(3)String重写equals()方法源代码解读
public boolean equals(Object anObject) {
//如果地址相同就不需要比较自然相等
if (this == anObject) {
return true;
}
//判断是否属于String(字符串类型)
if (anObject instanceof String) {
//如果是则进行向下转型Object–>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循环
while (n– != 0) {
//比较每个字符,如果不相等输出false
if (v1[i] != v2[i])
return false;
i++;
}
//如果从头到尾没有不相等的则输出true
return true;
}
}
//上方判断有一个没通过就输出false
return false;
}
网硕互联帮助中心





评论前必须登录!
注册