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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐巍 黑马帝   /  2012-3-17 01:32  /  2156 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请看下面的代码:
class StringMethodDemo
{
        public static void main(String[] args)
        {
                String s1="a2f";
                String s2="acd";
                System.out.println(s1.compareTo(s2));//打印结果:-49  字符串对象s1与s2进行比较,为什么结果是-49?
        }
}

3 个回复

倒序浏览
String类型的compareTo方法
是按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode 值。按字典顺序将此 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个负整数。如果按字典顺序此 String 对象位于参数字符串之后,则比较结果为一个正整数。如果这两个字符串相等,则结果为 0;compareTo 只在方法 equals(Object) 返回 true 时才返回 0。
至于整数是多少,负数是多少,要看他们字典顺序差距是多少了。。。。
回复 使用道具 举报
你要弄明白compareto的比较机制
compareTo()的返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的
差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方
全比较完,这时就比较字符的长度.

你的例子“a2f”和“acd”第二个字符不同
‘2’对应ASCII码50,‘c’是99,所以结果就是-49

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马