A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ♂诸侯♂ 中级黑马   /  2012-3-20 14:45  /  4108 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2个字符串比较大小?如:String str1="a"; String str2="b";

该贴已经同步到 ♂诸侯♂的微博

4 个回复

倒序浏览
String的compareTo(String anotherString)方法
public int compareTo(String anotherString)按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
这是字典排序的定义。如果这两个字符串不同,那么它们要么在某个索引处的字符不同(该索引对二者均为有效索引),要么长度不同,或者同时具备这两种情况。如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值;则在位置 k 上具有较小值的那个字符串(使用 < 运算符确定),其字典顺序在其他字符串之前。在这种情况下,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:

this.charAt(k)-anotherString.charAt(k)
如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差,即值:
回复 使用道具 举报
魏群 发表于 2012-3-20 14:57
String的compareTo(String anotherString)方法
public int compareTo(String anotherString)按字典顺序比较 ...

谢谢你。
回复 使用道具 举报
老兄,研究问题不要钻牛角尖好吗? 两个字符串比大小有意义吗?
回复 使用道具 举报
   这个问题让我想起,前一段时间做的一道题目。说数据库里面存的是员工的上班打卡的时间,规定9:30之前不算迟到,现在问我该怎么把这个迟到的统计出来。
   现在咱们不考虑这个从数据库里面取数据什么的,只说这个现在该怎么弄吧。想想觉得怪简单的,不就把时间字段取出来比较一下就行了吗。就是这一块,我编写的时候,就想是不是应该先把这个时间先转化为一个long类型的数据在进行比较就比较简单了吧。然而潜意识里好像有点排斥这个想法,接下来我就通过API找怎么样来比较比较简单呢,看到了String的compareTo(String anotherString)方法,我就把这些时间当做字符串给传进去了然后进行比较后,发现是可以的:
String s1 = "0930"; String s2 = "0915"; String s3 = "1012";
System.out.println(s1.compareTo(s2));//结果:2  就说明这个9:15比9:30早(小)
System.out.println(s3.compareTo(s1));//结果:1   就说明这个10:12比9:30晚(大)
这个纯属个人的一点理解,如果有错请指出来。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马