黑马程序员技术交流社区
标题:
String类compareTo方法,“hello”和“hel”返回结果为2
[打印本页]
作者:
㏒假™面具
时间:
2015-3-8 19:01
标题:
String类compareTo方法,“hello”和“hel”返回结果为2
本帖最后由 ㏒假™面具 于 2015-3-8 19:09 编辑
<div class="blockcode"><blockquote>public class Test {
public static void main(String[] args) {
String str = "Hello";
String str_1 = "Hel";
int a = str.compareTo(str_1);
System.out.println(a);
}
}
public int compareTo(String anotherString) {
int len1 = value.length;
int len2 = anotherString.value.length;
int lim = Math.min(len1, len2);
char v1[] = value;
char v2[] = anotherString.value;
int k = 0;
while (k < lim) {
char c1 = v1[k];
char c2 = v2[k];
if (c1 != c2) {
return c1 - c2;
}
k++;
}
return len1 - len2;
}
复制代码
一直疑惑为什么“hello”和“hel”比较结果为2.今天看源码终于发现,String类将接收的字符串转换成了字符数组然后,逐个比较元素。当元素相同仅长度不同时,返回长度差。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2