String 对象按照ASCII码的比较方法
String a = new String("ab");
String b = "a";
//本质是返回"ab"-"b"的ASCII值
System.out.println(a.compareTo(b));
String 对象判断相等不想等不能用 ‘==’
在C++种 字符串a和字符串b相等与否可以直接用== ,但是 java中String类提供了专用的方法 a.equals(String b);
String类中的 compartTo(String anotherString)总结
我们来看一下String类中是如何实现compareTo方法的:
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;
}
由源码可以看出:
首先取出两个字符串的长度,比较较小的长度内,两者是否相等。
若不相等,则直接返回该位置字符的ASCII码相减后的值。
若各位置都相等,则将两个字符串长度的差值返回。