Java中String类中compareTo( )方法

x33g5p2x  于2022-02-15 转载在 Java  
字(0.7k)|赞(0)|评价(0)|浏览(367)

compareTo方法是比较简单的,我们可以直接看其源码:
源码如下:

  1. public int compareTo(String anotherString) {
  2. int len1 = value.length;
  3. int len2 = anotherString.value.length;
  4. int lim = Math.min(len1, len2);
  5. char v1[] = value;
  6. char v2[] = anotherString.value;
  7. int k = 0;
  8. while (k < lim) {
  9. char c1 = v1[k];
  10. char c2 = v2[k];
  11. if (c1 != c2) {
  12. return c1 - c2;
  13. }
  14. k++;
  15. }
  16. return len1 - len2;
  17. }

整个思路非常简单,跟字典排序是一样的,即比较参与的两个字符串,如果首字符相同,则比较下一个字符,直到有不同的为止,返回不同的字符之间的ASC码差值。如果两个字符串不一样长,参与比较的字符又完全一样(即一个是另一个的子串),则返回两个字符串的长度差值。(负数表示第一个串小,0表示两串相等,正数表示第一串较大)

示例代码展示:

  1. System.out.println("ab".compareTo("a"));
  2. System.out.println("abcdef".compareTo("a"));
  3. System.out.println("abcdef".compareTo("abc"));
  4. System.out.println("abcdef".compareTo("ace"));
  5. output:
  6. 1
  7. 5
  8. 3
  9. -1

相关文章

最新文章

更多