String类的compareTo方法的源码解析
2018-02-27 23:01
323 查看
-----------------------------------------------------------------------------
String类的compareTo方法的源码如下:
-----------------------------------------------------------------------------
示例代码:
String s1 = "hello";
String s2 = "hel";
System.out.println(s1.compareTo(s2)); // 2
-----------------------------------------------------------------------------
String类的compareTo方法的源码如下:
class String { ...... private final char value[]; // 数组常量表示数组大小(长度)不能变。 // 在底层会有一个转换,直接将字符串自动转换为一个字符数组。 public int compareTo(String anotherString) { // this --> s1 --> "hello" // anotherString --> s2 --> "hel" int len1 = value.length; // this.value.length --> s1.toCharArray().length --> 5 int len2 = anotherString.value.length; // s2.value.length --> s2.toCharArray().length --> 3 int lim = Math.min(len1, len2); // Math.min(5,3); --> lim = 3; char v1[] = value; // value --> s1.toCharArray() char v2[] = anotherString.value; // char v1[] = {'h','e','l','l','o'}; // char v2[] = {'h','e','l'}; int k = 0; while (k < lim) { char c1 = v1[k]; // c1 = 'h','e','l' char c2 = v2[k]; // c2 = 'h','e','l' if (c1 != c2) { return c1 - c2; } k++; } return len1 - len2; // 5 - 3 = 2; } ...... }
-----------------------------------------------------------------------------
示例代码:
String s1 = "hello";
String s2 = "hel";
System.out.println(s1.compareTo(s2)); // 2
-----------------------------------------------------------------------------
相关文章推荐
- String类的compareTo()方法的源码解析
- java源码解析之String类的compareTo(String otherString)方法
- 常见对象_String类的compareTo()方法的源码解析
- 常见对象-String类的compareTo()方法的源码解析
- String类中常用方法源码解析
- Java源码学习-String类的compareTo方法
- String类常用方法源码分析
- ReactiveSwift源码解析(九) SignalProducerProtocol延展中的Start、Lift系列方法的代码实现
- Spark修炼之道(高级篇)——Spark源码阅读:第七节 resourceOffers方法与launchTasks方法解析
- 【Java实战】源码解析为什么覆盖equals方法时总要覆盖hashCode方法
- StringBuffer和StringBuilder源码解析(一)--构造方法
- String类下compareTo()与compare()方法
- 从源码解析computescroll()方法与invalidate()的关系
- Google Test(GTest)使用方法和源码解析——概况
- HashMap源码解析——get方法
- 十七.jQuery源码解析之入口方法Sizzle(1)
- Java线程池execute()方法源码解析
- 集合的toString()方法源码解析
- jq源码解析之绑在$,jQuery上面的方法(实例讲解)
- Java源码学习-String类的trim方法