您的位置:首页 > 编程语言 > Java开发

java字符串比较和jdkequals源码分析

2016-02-17 00:00 591 查看
package com.cnse.demo;
/**
* 比较两个字符串相等
*/
public class StringTest {
public static void main(String[] args) {
int checkLength = 0;
String str="好人";
String in="好人";
if(str.equals(in)){
System.out.println("equals比较::"+Boolean.valueOf(str.equals(in)));
}
char[] strarray=str.toCharArray();
char[]inarray=in.toCharArray();
for (int i = 0; i < inarray.length; i++) {
for (int j = 0; j < strarray.length; j++) {
if (inarray[i] == strarray[j]) {
System.out.println("charArray比较::"+Boolean.valueOf(inarray[i] == strarray[j]));
System.out.println("两个字符串相等");
System.out.println(inarray[i] +":::::in::::测试字符串::"+strarray[j]);
checkLength++;
break;
}
}
}
}
}

//java的equeals源码分析     //考虑的比较全面
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;
//使用的是i-- 把字符倒着比较
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: