你可以比较Java中的字符串和.equals吗?

时间:2013-11-13 22:18:25

标签: python string comparison

除了==之外,您能否以任何其他方式比较Python中的字符串? Java中有.equals这样的东西吗?

4 个答案:

答案 0 :(得分:3)

有两种方法可以做到这一点。第一个是使用operator模块,它包含所有数学运算符的函数:

>>> from operator import eq
>>> x = "a"
>>> y = "a"
>>> eq(x, y)
True
>>> y = "b"
>>> eq(x, y)
False
>>>

另一种方法是使用字符串的__eq__方法,当您使用==时调用该方法:

>>> x = "a"
>>> y = "a"
>>> x.__eq__(y)
True
>>> y = "b"
>>> x.__eq__(y)
False
>>>

答案 1 :(得分:2)

你可以这样做:

import operator
a = "string1"
b = "string2"
print operator.eq(a, b)

这与Java类似,因为您没有使用显式运算符。

然而,在Java中,您在String类(即myString.equals(otherString))上使用方法调用,但在Python eq中只是一个从名为{的模块导入的函数{1}}(请参阅文档中的operator.eq)。

答案 2 :(得分:2)

根据the docs

  

eq(a, b)相当于a == b

所以==就像Java中的.equals一样(除了左边是null时才有效。)

Java ==运算符的等价物是is运算符,如:

if a is b

答案 3 :(得分:0)

除了'=='之外还需要使用除了'=='之外的其他字符串是不可变的并且默认情况下是memoized吗?

正如其他答案中所指出的,您可以使用'is'作为参考(id)比较。