官网API(JDK13):

先上结论:

1、计算compareTo两边字符串的总长度(length())

2、求出总长度中的最小值

3、如果长度相等,比较ASCII值相同,返回0

4、如果长度不相同,从前向后比较每个字母的ASCII值,返回有差异的ASCII码的差值

5、在总长度的最小值中,如果所有的ASCII码相同,则进行长度的相减,返回相减后的值(正数或负数)

源码:

引用API(JDK13):

public int compareTo(字符串 anotherString)

按字典顺序比较两个字符串。比较是基于字符串中每个字符的Unicode值。在String字典上比较此对象表示 的字符序列与自变量字符串表示的字符序列。如果此String对象在字典上在参数字符串之前,则结果为负整数。如果此String对象在字典上跟随自变量字符串,则结果为正整数。如果字符串相等,则结果为零;否则,结果为零。确切地compareTo返回方法0何时equals(Object)返回true。

这是字典顺序的定义。如果两个字符串不同,则它们要么在某个索引处具有不同的字符(这是两个字符串的有效索引),要么它们的长度不同,或者两者都存在。如果它们在一个或多个索引位置具有不同的字符,则令k为最小索引;然后,按照字典顺序,其位置k处的字符具有较小的值(由使用 this.charAt(k)-anotherString.charAt(k)

如果在它们之间没有索引位置不同,则较短的字符串在字典上在较长的字符串之前。在这种情况下, compareTo返回字符串长度的差值,即值:

this.length()-anotherString.length()

有关更细粒度的String比较,请参阅 Collator。

指定者:

compareTo 在界面中 Comparable参数:

anotherString- String要比较的。

返回值:

的值0,如果参数字符串等于该字符串; 0如果该字符串在字典上小于字符串参数,则小于该值;0如果该字符串在字典上大于字符串参数,则该值大于该字符串。

java compareto源码_java中compareTo源码解析(String类型)相关推荐

  1. java aqs源码_java中AQS源码分析

    AQS内部采用CLH队列.CLH队列是由节点组成.内部的Node节点包含的状态有 static final int CANCELLED =  1; static final int SIGNAL    ...

  2. java double转换符_java中字符串怎么转换成double类型

    展开全部 public class Demo { public static void main(String[] args) { Demo demo = new Demo(); String str ...

  3. java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型

    java.lang.UnsupportedClassVersionError: JVMCFRE003解决方法--jdk 1.6 中switch的参数无法使用String类型 参考文章: (1)java ...

  4. Java浅拷贝和深拷贝(一文足矣),及String类型的坑。

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/q258523454/article/d ...

  5. 1.定义一个Father和Child类,并进行测试。 要求如下: 1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。 2)Child

    1.定义一个Father和Child类,并进行测试.  要求如下:  1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为"zhangjun" ...

  6. java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法

    compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...

  7. java比较吊的程序代码_java中 compareTo()的程序代码及用法

    展开全部 用来实现Comaprable接口,比如现在有个学生类,想通过其中score字段来让两个学生类的实例实现排序 ,可以这62616964757a686964616fe4b893e5b19e313 ...

  8. java 文本编辑器 源码_java文本编辑器源码

    import javax.swing.*; import java.awt.*; import java.io.*; import java.awt.event.*; public class Txt ...

  9. java compareto 返回值_Java File compareTo()方法

    Java File compareTo()方法 java.io.File.compareTo(File pathname) 方法比较两个抽象路径名的字典顺序.用这种方法定义的排序是依赖于操作系统. 1 ...

最新文章

  1. 《Swift开发实战》——第16章,第16.2节下标脚本用法
  2. sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句
  3. Oracle应用容器云的自由
  4. sql 把特定数据排在最前面
  5. 阿里达摩院-视觉方向(校招、社招、实习),欢迎各路大神
  6. java controller json_Controller 获取 JSON
  7. 红橙Darren视频笔记 旋转加载界面
  8. 为什么说ES6的class是语法糖?
  9. 浅谈SSD应用和发展趋势
  10. matlab的默认复数开方
  11. npcap关闭_npcap是什么软件
  12. B.FRIENDit壁虎忍者品牌故事
  13. Python爬虫之scrapy分布式爬虫
  14. 最近研究NFC的总结
  15. 多商户商城系统功能拆解39讲-平台端营销-砍价记录
  16. 通俗地、有效地学习Linux驱动应用(只要没更完有空就更)
  17. 基于Qt平台开发安卓应用
  18. 战队口号霸气押韵8字_校园运动会加油霸气押韵口号文案 2020最有特色的运动会口号...
  19. idea使用大全 idea快捷键大全
  20. MySQL必知必会读书笔记一

热门文章

  1. 华为首次公开芯片堆叠封装技术
  2. 仿射密码解密 频率法
  3. 基于B/S架构的学生公寓管理系统的设计与开发
  4. VC++常用数据类型及其操作详解
  5. Bugku CTF 密码学刷题
  6. 计算机专业如何践行工匠精神论文2000,工匠精神论文2000字范文.doc
  7. 【信息系统项目管理师基础知识】人力资源管理
  8. Vue3通透教程【八】获取DOM、操作组件
  9. 小米1s充电时屏幕一直亮着不关闭的解决办法
  10. JAVA 10.4 工资管理软件设计 TUT实验二