String类中的equals方法总结(转载)
2024-10-08 11:08:42
转载:https://blog.csdn.net/qq_25827845/article/details/53868815
1.String源码中equals大致写法:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof 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;
}
2. 模仿String equals源码
package cn.ywq.test; class MyString { char[] value;
public MyString(char[] value) {
this.value=value; //通过构造方法将字符传入
} public int equalsString(Object obj) {
if(this==obj){
return 0;
} //若该对象是MyString类型的
if(obj instanceof MyString){
MyString string =(MyString) obj;
int n=this.value.length;
if (n>string.value.length) { //先判断长度的关系
return 1;
}else if(n<string.value.length){
return -1;
}else{ //若长度相等
char v1[] = this.value;
char v2[] = string.value;
int i = 0;
while (n-- != 0) { //按照数组的每一位进行比较
if (v1[i] > v2[i]){
return 1;
}else if(v1[i] < v2[i]){
return -1;
} i++;
}
return 0; //若while循环正常结束,则说明相等,返回0 }
}
return -100; //若传入的不是MyString类型的对象 } }
package cn.ywq.test; public class Test { public static void main(String[] args) { char[] value={'a','b','c','d'};
// char[] value2={'a','b','c','d','e'};
// char[] value3={'c','b','c','d'};
char[] value4={'a','b','c',}; MyString myString = new MyString(value);
MyString s=new MyString(value4);
int i = myString.equalsString(s);
System.out.println(i);
} }
最新文章
- 支付宝PC即时到账和手机网站支付同步
- Android开发——搭建最新版本的Android开发环境
- OpenCV2+入门系列(三):遍历图像的几种方法
- [转]MVC自定义数据验证(两个时间的比较)
- PHP正则匹配title标题文本
- 自己实现的库函数2(memset,memcmp,memcpy,memmove)
- php提取身份证号码中的生日日期以及验证是否为未成年人的函数
- python--socket/Socketerver并发/udp
- Vue实践经验
- python登录网页版微信发送消息
- centos7进单用户
- 中文汉字和常见英文数字等的unicode编码范围
- web基础之http
- WIndows下使用Grafana+InfluxDB打造监控系统
- GNU/Linux的GNU是什么意思
- Window和document的区别
- [UE4]GameMode、GameInstance、GameState、PlayerState、PlayerController
- node-lessons
- Leetcode(力扣) 整数反转
- mongodb lock 出毛病时解决方法