python字符串和Java字符串

发布时间:2022-03-25 09:59:22 人气:87 作者:多测师

  接下来,又到了 Python 字符串与 Java 字符串 PK 的时刻。

  Java 中有比较字符串的方法,即 compareTo() 方法与 equals() 方法,前一个方法逐一比较两个字符串的字符编码,返回一个整型的差值,后一个方法在整体上比较两个字符串的内容是否相等。

  Python 字符串没有这两个单独的方法,但要实现类似的功能却很简便。 先看例子:

  myName = "Python猫"

  cmpName = "world"

  newName = myName

  # 直接用比较符号进行compare

  myName > cmpName

  >>> False

  myName == newName

  >>> True

  cmpName != newName

  >>> True

  # 比较是否同一对象

  myName is cmpName

  >>> False

  myName is newName

  >>> True

python字符串和Java字符串

  上例中,如果把赋值的字符串换成列表或者其它对象,这些比较操作也是可以进行的。也就是说,作比较的能力是 Python 公民们的一项基本能力,并不会因为你是字符串就给你设限,或者给你开特权。

  与此类似,Python 公民们自带求自身长度的能力,len() 方法是内置方法,可以直接传入任意序列参数,求解长度。Java 中则要求不同的序列对象,只能调用各自的 length() 方法。说个形象的比喻,Python 中共用一把秤,三教九流之辈都能拿它称重,而Java 中有多把秤,你称你的,我称我的,大家“井水不犯河水”。

  Python 中曾经有 cmp() 方法和__cmp__()魔术方法,但官方嫌弃它们鸡肋,所以在Python 3 中移除掉了。虽然在 operator 模块中还为它留下了一脉香火,但保不定哪天就会彻底废弃。

  import operator

  operator.eq('hello', 'name')

  >>> False

  operator.eq('hello', 'hello')

  >>> True

  operator.gt('hello', 'name')

  >>> False

  operator.lt('hello', 'name')

  >>> True

  (3)墙上的门

  在 Java 中,字符串还有一个强大的 valueOf() 方法,它可以接收多种类型的参数,如boolean、char、char数组、double、float、int等等,然后返回这些参数的字符串类型。 例如,要把 int 转为字符串,可以用 String.valueOf(anynum) 。

  Python 字符串依然没有这个单独的方法,但要实现相同的功能却很简便。对Python来说,不同的数据类型转换成字符串,那是小菜一碟,例如:

  str(123) >>> '123'

  str(True) >>> 'True'

  str(1.22) >>> '1.22'

  str([1,2]) >>> '[1, 2]'

  str({'name':'python', 'sex':'male'})

  >>> "{'name': 'python', 'sex': 'male'}"

  而从字符串转换为其它类型,也不难,例如,int('123') 即可由字符串'123' 得到数字 123。对比 Java,这个操作要写成 Integer.parseInt('123')。

  在Java 的不同数据类型之间,那道分隔之墙矗立得很高,仿佛需要借助一座更高的吊桥才能沟通两边,而在灵活的 Python 里,你可以很方便地打开墙上的那扇门,来往穿越。

  跟 Java 相比,Python 字符串确实没有几项方法,但是事出有因,它们的天赋能力可不弱,所有这些操作都能简明地实现。一方面,Python 字符串做不到某些事,但是另一方面,Python 可以出色地做成这些事,孰优孰劣,高下立判。

  以上内容为大家介绍了python字符串和Java字符串,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/

返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线