关于compareTo方法小问题
来源:互联网 发布:玻璃深加工erp软件 编辑:程序博客网 时间:2024/05/21 00:14
1.compareTo方法引入
String类中有一个按照字典顺序比较两个字符串的方法compareTo通过API文档可知
int compareTo(String anotherString) // 按字典顺序比较两个字符串。
现在有如下String类型的字符串
(1)s1="abcde", s2="abcd"
(2)s1="abcde" , s2="abcs"
则得到的结果会是多少呢?
首先看如下代码:
package xfcy_01;public class StringDemo01 {public static void main(String[] args) {String s1="abcde";String s2="abcd";String s3="abcs";System.out.println(s1.compareTo(s2));System.out.println(s1.compareTo(s3));}}得到结果为:
得到这样的结果,或许不太理解,为什么会是这样的呢?
2.通过查看compare源码
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; }
所以才会出现上面的结果
3.小结
当遇到不懂的地方看源码可以更清晰的了解内部进行的运算,因此在后面的学习中也因该学会看源代码。以上内容仅为个人观点,如有错误,请指出!
0 0
- 关于compareTo方法小问题
- 关于实现Comparable接口重写compareTo方法报错问题
- Java 关于重写compareTo方法
- 关于自定义的compareTo方法
- Java 中 compareTo方法问题
- 关于重写equals,hashcode以及compareTo方法!
- 关于重写equals,hashcode以及compareTo方法!
- 关于重写equals,hashcode以及compareTo方法!
- 关于重写equals,hashcode以及compareTo方法!
- 关于重写equals,hashcode以及compareTo方法
- 关于重写equals,hashcode以及compareTo方法
- 关于重写equals,hashcode以及compareTo方法
- 关于compareTo方法比较次数的研究
- 关于Java中compareTo方法的使用
- 关于Calendar类的compareTo方法比较两个时间不相等的问题
- compareTo方法
- compareTo方法
- 关于重写equals方法,hashcode方法,toString方法 ,compareto()方法
- php curl连接未释放,strace结果:poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 1000) = 0 (Tim
- 简单理解:ML、DB、NLP
- vector erase
- 总结
- linux 用共享内存实现剪贴板原理
- 关于compareTo方法小问题
- Redis运行流程源码解析
- XCode 中ARC和MRC设置
- hdu 3483 A Very Simple Problem 矩阵快速幂+二项式展开
- c++11 成员变量初始化
- 20161031
- Android中的DrawRect()理解
- 无线网络自动获取IP批处理脚本
- NOIP模拟题 2016.10.31 [DP] [搜索] [并查集]