String类常用方法总结

1. compareTo

String的compareTo()方法用于字典顺序比较两个字符串。两个字符串的每个字符都转换为Unicode值以进行比较。如果两个字符串都相等,则此方法返回0,否则返回正值或负值。如果第一个字符串按字典顺序大于第二个字符串,则结果为正,否则结果为负。该方法区分大小写。
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;
    }
  • 使用compareTo()方法将字符串与空字符串进行比较,则该方法将返回非空字符串的长度。
  • java 中对象比较大小有两种方法
  1. 实现Comparable 接口 的 public int compareTo(T o) 方法;
  2. 实现Comparator 接口 的 int compare(T o1, T o2)方法;

2. concat

Java字符串concat()方法连接多个字符串。此方法将指定的字符串附加到给定字符串的末尾,并返回组合的字符串。我们可以使用concat()方法连接多个字符串。

 public String concat(String str) {
        int otherLen = str.length();
        if (otherLen == 0) {
            return this;
        }
        int len = value.length;
        char buf[] = Arrays.copyOf(value, len + otherLen);
        str.getChars(buf, len);
        return new String(buf, true);
    }

源码分析:value为String内部维护的一个字符数组,用来存储String的值

  1. 首先判断需要拼接的字符串是否长度为0,若为0则返回预原字符串
  2. 使用Arrays.copyOf方法将value复制到buf,且buf长度扩充为原字符串和新字符串长度之和
  3. 使用String的getChars方法将str的字符全部复制到buf索引len(即原字符串之后),完成拼接
  4. 返回新的字符串

3. equals

equals()不仅比较这个字符串的内容还检查另一个被比较的对象是否是String类型

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;
}

4. join

join()方法连接给定的String并返回连接的String。

public static String join (CharSequence delimiter ,CharSequence ... elements )  

返回一个新的String,该String由CharSequence元素的副本组成,这些元素与指定的分隔符的副本连接在一起。

你可能感兴趣的:(String类常用方法总结)