总结

compareTo() 按字典顺序比较两个字符串

compareTo()返回值: int
返回值类型分别有三种,小于0,等于0,大于0

  1. 如果字符串相等返回值0;
  2. 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串);
  3. 如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度。

简介

按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;

  • compareTo 只在方法 equals(Object) 返回 true 时才返回 0。

这是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。

  • 如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:

this.charAt(k)-anotherString.charAt(k)

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

this.length()-anotherString.length()

测试

//java 字符串大小比较
String a = "ab123";
String b = "ab129";
String d = "ab120";
String e = "ab123";
String f = "ab1234567";
String g = "ab";
int c = a.compareTo(b);
System.out.println(c);  // -6
c = a.compareTo(d);
System.out.println(c);  // 3
c = a.compareTo(e);
System.out.println(c);  // 0
c = a.compareTo(f);
System.out.println(c);  // -4
c = a.compareTo(g);
System.out.println(c);  // 3

Java 字符串比较大小相关推荐

  1. java字符串比大小_Java字符串比较(3种方法)

    字符串比较是常见的操作,包括比较相等.比较大小.比较前缀和后缀串等.在 Java 中,比较字符串的常用方法有 3 个:equals() 方法.equalsIgnoreCase() 方法. compar ...

  2. java 字符串大小比较

    //java 字符串大小比较 String a="b123"; String b="b124";String d="b122"; Strin ...

  3. [转]Java字符串转换为日期和时间比较大小

    方法一: DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); String dateBegin=fmt.format(carr ...

  4. Java字符串用“。”(点)分隔。

    本文翻译自:Java string split with "." (dot) [duplicate] This question already has an answer her ...

  5. Java 字符串操作的总结1(转载)

    一.Java字符串类基本概念 在JAVA语言中,字符串数据实际上由String类所实现的.Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串:二类是在程序中会被改变长度的可变字符串.J ...

  6. java字符串string_Java字符串String方法总结

    Java字符串创建与初始化实例.Java字符串String方法总结,包括字符串的大小写替转换,获取字符串长度的方法.截取字符串,去除字符串中的空格.StringBuffer类转换成String类等: ...

  7. Java字符串与日期互转

    Java字符串与日期的相互转换 1.字符串转日期 字符串的格式与日期的格式一定要对应,并且字符串格式可以比日期格式多,但不能少,数字大小不自动计算日期.其中需要主要大小写 年yyyy 月MM 日dd ...

  8. 一步步优化JVM四:决定Java堆的大小以及内存占用

    到目前为止,还没有做明确的优化工作.只是做了初始化选择工作,比如说:JVM部署模型.JVM运行环境.收集哪些垃圾回收器的信息以及需要遵守垃圾回收原则.这一步将介绍如何评估应用需要的内存大小以及Java ...

  9. java字符串转字符串数组_Java字符串数组

    java字符串转字符串数组 Java String array is used to hold fixed number of Strings. String array is very common ...

最新文章

  1. 问题集锦(41-42)
  2. c oracle 中文列名,C#获取ORACLE列名的有关问题,这次够详细了吧。求帮助
  3. android消息机制
  4. php300云,概述 · PHP300Framework2.0 · 看云
  5. 【Pytorch神经网络实战案例】08 识别黑白图中的服装图案(Fashion-MNIST)
  6. 总线驱动:Bus driver - USB driver for example
  7. 高中会考access数据库_高中信息技术ACCESS数据库上机操作复习课教案
  8. discuz完善用户资料任务不能完成的解决方法
  9. @media实现网页自适应中的几个关键分辨率
  10. MySQL 索引背后的数据结构及算法原理
  11. php 是否支持json,php json 支持汉语
  12. 用HTml+csss实现优惠券
  13. 神秘美女接机刘谦 曝刘谦女友酷似舒淇身家过亿
  14. ubuntu执行uci出现 uci: error while loading shared libraries: lib
  15. .NET调用百度天气api经验
  16. js前端实现微信支付和支付宝支付
  17. 微信签到 表单 mysql_java做的一个简易的微信签到系统
  18. 用友NCC的期初数量如何在数据库里面查询?
  19. 用Python中的马尔科夫链进行营销渠道归因
  20. 自制hdmi线一头改vga图_这8个习惯你不改,你这辈子都瘦不了!!

热门文章

  1. 《Vue》聊一聊实际项目中前端的几种皮肤实现和优缺点
  2. 微软北极服务器,微软正构建一个轻量级的操作系统:代号Polaris
  3. java中,子类初始化时一定要调用父类的构造方法,不调用行吗?
  4. java+mysq基于SSM的酒店管理系统#毕业设计
  5. 微信自动回复指定联系人
  6. 面向对象和面向过程两种编程方式的比较
  7. 世界主要国家产业数字化转型举措
  8. 用NSKeyedArchiver存储数据(归档)
  9. servlet过滤器实现过滤敏感文字
  10. kudu集群Tablet Server异常:Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock