概述
关于String类的必知必会主要包括:
- String的常用函数
- equals()与==的区别
- String、StringBuffer 与 StringBuilder的区别
- Switch能否用string做参数?
1. String 常用函数
2. equals()与==的区别
附:
/**
* 附1:Object的equals()原函数实现
* 作用 = 比较的是对象的内存地址(内部实现实际 是 “==”,故作用同 “==”作用)
*/
public boolean equals (Object obj){
return (this == obj);
}
/**
* 附2:复写了Object equals()原函数的String 类中的equals
* 作用:比较两个字符串的内容是否相同
*/
public boolean equals(Object obj){
// 若2者指向同一个地址,那么它们的内容肯定相同
// 使用 “==” 比较
if (this == obj){
return true;
}
// 若不指向同一地址,则判断规则为:
// 1. 类型是否相同( 即,传入对象是否是String类型,采用 instanceof 比较)
// 2. 内容是否相同 = 字符串序列是否相同(String类 内部存储 采用char[]实现)
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length; // 注:比较次数 = 第1个String对象的长度n,而不是传入参数中的String对象长度
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
// 遍历过程中只要有1个字符不同,就返回false
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
3. String、StringBuffer 与 StringBuilder的区别
3者 同样用于储存 & 操作字符串,区别如下:
4. Switch能否用string做参数?
- 在
Java7
前,不支持;在Java 7后,支持
Java7
前支持的类型:枚举、byte
、short
、char
、int
& 对应的封装类
至此,关于关于Java String类的必知必会讲解完毕。
欢迎关注Carson_Ho的简书!
分享Android技术干货,追求短、平、快,但却不缺深度。
请点赞!因为你的鼓励是我写作的最大动力!
相关文章阅读
Carson带你学Android:学习方法
Carson带你学Android:四大组件
Carson带你学Android:自定义View
Carson带你学Android:异步-多线程
Carson带你学Android:性能优化
Carson带你学Android:动画