Java 字符串比较小知识

使用 String.compareTo 方法:

  compareTo() 的返回值是int, 它是先比较对应字符的大小(ASCII码顺序)。

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

String s1 = "abc";
String s2 = "abcd";
String s3 = "abcdfg";
String s4 = "1bcdfg";
String s5 = "cdfg";
System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1)
System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3)
System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48)
System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)
时间: 2024-10-11 18:27:27

Java 字符串比较小知识的相关文章

Java代理的小知识

这篇博客主要是看了一位大牛的博客所写的,该大牛写的是数据库连接池的实现,看了他的代码,顿时觉得很牛牛.所以在这里我也记录下我自己的demo,虽然不提倡重复造轮子,但是很多时候我们在重复造轮子的过程中才会有技术的提高,所以在这里我就重复造下轮子吧 这篇博客主要写的是关于Java动态代理的一个demo 情景如下: 在LOL游戏中,有个现象是代练的问题,实际游戏账号者会请代练,而这个代练在这里就是代理,帮实际游戏账号者进行帮打晋级赛的活动 UML图我就不画了,目前对这方面的知识还没去学,打算过段时间再

Java Web实用小知识02

日期时间转换到页面显示 两种方式: 1. OutputStream out = response.getOutputStream(); map.put("enterFromTime", sdf.format(itemData.getEnterFromTime()));// 入单时间 2. map.put("changeTime", DateUtil.formatDate(itemData.getChangeTime()));// 转单时间 第2种好. 日期加一天 高

java中一些小知识和面试问题

抽象类的总结几点: · 抽象类与普通类相比最大的不同只是在于抽象类之中存在有抽象方法,所以在抽象类之中依   然可以定义属性.构造方法等 · 抽象类声明时不允许使用 final,抽象类必须要求有子类,而 final 定义的类是不能够有子类的. · 抽象类之中即使没有抽象方法,那么也不能够被直接实例 JAVA 中的主方法可以说创造了一个长的之最,其组成有许多的关键字,下面来分析每一个关键字:  · public:指的是公共的:  · static:使用 static 定义的方法必须由类名称调用: 

java类型的小知识List 等

List 复制之 浅拷贝与深拷贝 详细连接https://blog.csdn.net/never_tears/article/details/79067245 java中判断字符串是否为数字的方法的几种方法 https://blog.csdn.net/u013066244/article/details/53197756 java 基本类型详解 及 常见问题 https://blog.csdn.net/sunshoupo211/article/details/23001137 详细连接https

Java易混小知识——equals方法和==的区别

一.equals方法和==的区别 1.equals是String对象的方法,可以通过".“调用. 2.== 是一个运算符. 二.常用的比较用法 1.基本数据类型比较. equals和==都比较两个数值 是否相等.相等即为true,不相等则为false. 2.引用对象的比较. equals和==都比较栈内存中的地址是否相等.相等即为true,不相等则为false. 三.易错点 1.String是一个特殊的引用类型.对于两个字符串的比较,不管是==还是equals这两者比较的都是字符串是否相同. 2

01 java开发前小知识

1.常见的dos命令 盘符: 进入指定的盘符下. dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录    注意:rd不能删除非空的文件夹,而且只能用于删除文件夹. cd : 进入指定目录 cd.. : 退回到上一级目录 cd \ : 退回到根目录 echo "hello java">a.txt  写入文本到指定文件  type a.txt 显示文件内容命令 del : 删除文件    注意:不能删除文件夹,只能删除文件. exit : 推出dos

java基础数据类型小知识

数据类型的扩展 银行业务的处理 说到数字,我们可能第一想到的是int .浮点型数据类型 但是对于"钱"来说,用浮点型数据类型是不行的,Int更是不可以 为何浮点型不可以? 因为浮点型float double是有限的,离散的,舍入误差的,大约,接近但是不相等 我们在处理这些需要精度的数据的时候应该要避免使用浮点数 float f=0.1f; //0.1 double d=1.0/10; //0.1 System.out.println(f==d); //false float d1=22

Java Web实用小知识01

${ctx}与 ${pageContext.request.contextPath}这两个为一个意思,都是获取当前根目录. 不同的是${ctx}为${pageContext.request.contextPath}的简写版,经查证之后果真如此, 发现在项目的一个文件内有这样一段话的配置<c:setvar="ctx"value="${pageContext.request.contextPath}"/> 注意在使用${ctx的时候一定不要忘记把带有该配置的

Java中常量小知识

常量分类:常量分为静态常量,非静态常量(全局常量),局部常量 静态常量:要么定义的时候赋初值,要么在静态代码块中赋值 非静态常量:要么在定义的时候赋初值,要么在代码块中赋值 局部常量:可以在定义时赋初值,也可以在使用前赋值 注意:接口中只存在一种常量,就是静态常量,必须定义时赋值,因为在接口中不存在代码块. 为什么局部变量不初始化? 局部变量,都是存在栈中的.而栈是快速重复的大量使用,如果每次使用都初始化,开销会比较大,不如,直接让程序员来手动初始化.