看了下api文档对compareTo的介绍,有个疑问

看了下api文档对compareTo的介绍,有个疑问

Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings

这句话的意思是,会比较两个字符串中每个charz值对应的unicode value的大小,然后如果比参数小就return一个负数,相等就是0,大于就是正数,那它是怎么比较的呢,原理是什么,比如两个字符串"aba"和"bab",如果a比b大那该怎么判断?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

中心:String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型

1.当两个比较的字符串是英文且长度不等时,

1)长度短的与长度长的字符一样,则返回的结果是两个长度相减的值

a="hello";

b="hell";

num=1;

或者

a="h";

b="hello";

num=4;

2)长度不一样且前几个字符也不一样,从第一位开始找,当找到不一样的字符时,则返回的值是这两个字符比较的值

a="assdf";

b="bdd";

num=-1;

2.当两个比较的字符串是英文且长度相等时,

1)一个字符

a="a";   //97

b="b";   //98

num=-1;

2)多个字符,第一个字符不同则直接比较第一个字符

a="ah";    //a=97

b="eg";    //e=101

num=-4

3)多个字符,第一个字符相同则直接比较第二个字符,以此类推

a="ae";   //e=101

b="aa";   //a=97

num=4;

--------------------- 

作者:NoobYang 

来源:CSDN 

原文:https://blog.csdn.net/qq_34115598/article/details/79892478 

这是我收藏的你看看


慕粉0938534373 2019-01-25 18:44:14

compareto 不能用来比较字符串   用来比较Number对象和方法的参数值的大小;

例如 Integer x=5;

x.compareTo(3);

返回1  ,如果X>3返回1;小于返回-1;等于返回0 ;请采纳

  • 提问者 慕侠3717263 #1
    我查的是API文档中String的方法compareTo,不是Integer类
    2019-01-25 18:48:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师