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

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

示例代码展示:

System.out.println("ab".compareTo("a"));
System.out.println("abcdef".compareTo("a"));
System.out.println("abcdef".compareTo("abc"));
System.out.println("abcdef".compareTo("ace"));
output:
1
5
3
-1

Java中String类中compareTo( )方法相关推荐

  1. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  2. c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串

    在C#的字符串操作过程中,截取字符串是一种常见的字符串操作,可使用string类的Substring方法来完成字符串的截取操作,该方法支持设定截取的开始位置以及截取的字符串长度等参数,Substrin ...

  3. (JAVA)String类之比较方法

    /* 字符串: 一.概述:1.字符串在JAVA中,使用""表示2.java.lang.String类3.只要写""就是字符串对象.不需要new二.空参构造器ne ...

  4. 关于JAVA的String类的一些方法

    一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str="This is a String"; int len =str.le ...

  5. java中string的方法_java中String类中的常用方法

    @Test public void testToString2() {  /**   * 他会调用toString方法 他调用的其实是Object类中的toString方法 引用会隐式调用toStri ...

  6. JDK1.8中String类的intern()方法学习

    jdk1.8字符串常量池是位于堆中: 在jdk1.8中使用如下指令时会同时在堆中和常量池(前提是常量池中还没有该对象)中创建字符串对象,但是s是指向堆中. String s = new String( ...

  7. (JAVA)String类之比较方法(2)

    String类: 获取字符串的内容 一.获取字符串长度public int length() {return value.length;}length 与 lenght()的区别:前面是属性,不需要传 ...

  8. 关于Java中String类的intern()方法

    首先intern()方法的定义:当调用这个方法的时候,如果字符串常量池中有这个对象,就把常量池中的这个对象返回,没有就把当前对象加入到常量池并且返回当前对象的引用: jdk1.6之前:将对象存入常量池 ...

  9. JAVA中String类的intern()方法的作用

    2019独角兽企业重金招聘Python工程师标准>>> 一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: [ja ...

最新文章

  1. php如何批量导入题库,批量文本导入试题
  2. mysql隐式转换造成索引失效的事故总结
  3. JS中Node节点总结
  4. 路径总和 III—leetcode437
  5. PAT甲题题解-1050. String Subtraction (20)-水题
  6. childNodes详解
  7. 【SQL】血缘解析 SQL parser 工具介绍
  8. CentOS 7 怎样安装或升级最新的内核?
  9. 第二阶段冲刺第八天(6月7号)
  10. 第三季-第10课-时间编程
  11. 传智播客 GIL(全局解释器锁)学习
  12. linux系统有gotoxy函数,linux下有没有类似gotoxy()的函数
  13. badboy设置中文_录制脚本badboy工具使用手册
  14. Cisco CCNP课程
  15. android es2 es3,详细内幕剖析九号滑板车es2和es3有什么区别?哪个好?口碑真实揭秘...
  16. [bzoj3140][二分图匹配]消毒
  17. 东软睿驰 bms车载测试工程师
  18. 读论文:Noise2Noise: Learning Image Restoration without Clean Data
  19. matlab不是内部或外部命令_如何解决Telnet不是内部或外部命令(电脑提示telnet不是内部或外部命令...
  20. python接口自动化测试框架pdf,Python接口自动化测试框架设计到开发完整版2019

热门文章

  1. python反射、闭包、装饰器_python 闭包装饰器(一)
  2. ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
  3. 结构化程序goto语句_C ++ goto语句| 查找输出程序| 套装1
  4. sql server与oracle的分页,详解SQLServer和Oracle的分页查询
  5. ai建立使用图案_ai自定义图案的方法详解步骤图
  6. 2万字长文包教包会 JVM 内存结构
  7. windows自定义快速启动(运行)命令
  8. hibernate中对象的3种状态----瞬时态、持久态、脱管态
  9. zoj 1091 Knight Moves
  10. Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)