Java中String类中compareTo( )方法
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( )方法相关推荐
- Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释
Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...
- c#string倒数第二位插入字符_【转载】C#中string类使用Substring方法截取字符串
在C#的字符串操作过程中,截取字符串是一种常见的字符串操作,可使用string类的Substring方法来完成字符串的截取操作,该方法支持设定截取的开始位置以及截取的字符串长度等参数,Substrin ...
- (JAVA)String类之比较方法
/* 字符串: 一.概述:1.字符串在JAVA中,使用""表示2.java.lang.String类3.只要写""就是字符串对象.不需要new二.空参构造器ne ...
- 关于JAVA的String类的一些方法
一.得到字符串对象的有关信息 1.通过调用length()方法得到String的长度. String str="This is a String"; int len =str.le ...
- java中string的方法_java中String类中的常用方法
@Test public void testToString2() { /** * 他会调用toString方法 他调用的其实是Object类中的toString方法 引用会隐式调用toStri ...
- JDK1.8中String类的intern()方法学习
jdk1.8字符串常量池是位于堆中: 在jdk1.8中使用如下指令时会同时在堆中和常量池(前提是常量池中还没有该对象)中创建字符串对象,但是s是指向堆中. String s = new String( ...
- (JAVA)String类之比较方法(2)
String类: 获取字符串的内容 一.获取字符串长度public int length() {return value.length;}length 与 lenght()的区别:前面是属性,不需要传 ...
- 关于Java中String类的intern()方法
首先intern()方法的定义:当调用这个方法的时候,如果字符串常量池中有这个对象,就把常量池中的这个对象返回,没有就把当前对象加入到常量池并且返回当前对象的引用: jdk1.6之前:将对象存入常量池 ...
- JAVA中String类的intern()方法的作用
2019独角兽企业重金招聘Python工程师标准>>> 一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: [ja ...
最新文章
- php如何批量导入题库,批量文本导入试题
- mysql隐式转换造成索引失效的事故总结
- JS中Node节点总结
- 路径总和 III—leetcode437
- PAT甲题题解-1050. String Subtraction (20)-水题
- childNodes详解
- 【SQL】血缘解析 SQL parser 工具介绍
- CentOS 7 怎样安装或升级最新的内核?
- 第二阶段冲刺第八天(6月7号)
- 第三季-第10课-时间编程
- 传智播客 GIL(全局解释器锁)学习
- linux系统有gotoxy函数,linux下有没有类似gotoxy()的函数
- badboy设置中文_录制脚本badboy工具使用手册
- Cisco CCNP课程
- android es2 es3,详细内幕剖析九号滑板车es2和es3有什么区别?哪个好?口碑真实揭秘...
- [bzoj3140][二分图匹配]消毒
- 东软睿驰 bms车载测试工程师
- 读论文:Noise2Noise: Learning Image Restoration without Clean Data
- matlab不是内部或外部命令_如何解决Telnet不是内部或外部命令(电脑提示telnet不是内部或外部命令...
- python接口自动化测试框架pdf,Python接口自动化测试框架设计到开发完整版2019
热门文章
- python反射、闭包、装饰器_python 闭包装饰器(一)
- ubuntu sun-java6-jre_在 Ubuntu Lucid 下请回 Sun Java6 Jre, 赶走 OpenJDK
- 结构化程序goto语句_C ++ goto语句| 查找输出程序| 套装1
- sql server与oracle的分页,详解SQLServer和Oracle的分页查询
- ai建立使用图案_ai自定义图案的方法详解步骤图
- 2万字长文包教包会 JVM 内存结构
- windows自定义快速启动(运行)命令
- hibernate中对象的3种状态----瞬时态、持久态、脱管态
- zoj 1091 Knight Moves
- Kubernetes 部署 Traefik Ingress 控制器 (1.7.12)