String中的compareTo方法

String中的compareTo方法

老师,String类中的compareTo方法是什么样子的,作用又是什么?

正在回答

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

3回答

你好!Unicode是包括ASCII码值的,比ASCII码值表示的字符更多。具体Unicode的值是多少需要去查看Unicode编码表,可以在网络上搜索查看,一般情况下我们不需要查看,只要知道comparetTo()方法的返回值为0表示字符串相等,不为0表示不相等就可以了。

   关于比较的返回值,是他们Unicode编码值的差值,比如s1为"abc",s2为"bcd",因为第一个字符就不相等,那么返回值就是a和b的Unicode编码的差值,即a-b的值。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 鱼儿0001 提问者 #1
    哦,好的,谢谢老师!
    2019-06-22 15:24:29
好帮手慕珊 2019-06-21 18:03:21

    你好!看一下下面的代码,s1和s2进行比较时,是把"abc"和"bcd"进行比较,这两个字符串比较时,是字符串中的每个字符依次进行比较,也就是先比较a和b,它们的比较依据字典顺序,也就是Unicode编码的字符集中的顺序。比如a在字符集中的顺序比b靠前,也可以理解为a比b小,所以返回值是负数。如果第一个字母相等,那么就继续比较后面的字母。

    同样如果返回值是0,表示两个字符串相等,比如s2也为"abc"时,n的值就是0。同理,如果s2.compareTo(s1);因为s2的值比s1大,返回值是正数。因此,我们可以通过返回值来判断两个字符串是否相等。

http://img1.sycdn.imooc.com//climg/5d0ca9550001c35a04380156.jpg

    如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 鱼儿0001 #1
    谢谢老师的耐心回复,感觉好复杂啊!老师,1、为什么不是用阿斯科马值的先后顺序比大小,而是用Unicode?2、在Unicode里,a和b是多少?3、如果s1<s2,返回值是什么,反之s1>s2,返回值又是什么?
    2019-06-22 14:40:44
好帮手慕阿满 2019-06-20 17:19:06

同学你好,如图:

http://img1.sycdn.imooc.com//climg/5d0b4e570001a5b007080062.jpg

compareTo()参数类型是String,返回值类型是int,作用是按字典顺序比较两个字符串的大小。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 鱼儿0001 #1
    谢谢老师的回复。这个方法返回值类型为什么是int,作用是按字典顺序比较两个字符串的大小,这怎么理解。老师,请举一个代码例子吧,你发的信息介绍看的人似懂非懂,其实不懂。。。。。。
    2019-06-21 14:16:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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