是否将带千位分隔符的字符串转换为整数?

2024-09-28 16:54:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,其中包含一些我想删除的字符

a = "2,678"
print int(a.replace(",", ""))

是否有一个string方法代替函数将该字符串更改为整数,类似于Java的toXXX方法

我希望继续一个接一个地追加方法,而不是将光标移回字符串的开头并将所有方法放在一起

# I like:
a.replace(",", "")....toint()
# I don't like:
int(a.replace(",", "")...)

string类是否有一个方法来执行我想要的操作


Tags: 方法函数字符串string整数java字符replace
3条回答

您可以派生自己的类似字符串的类,该类的行为符合您的要求:

class MyStr(str):
    def __int__(self):
        return int(self.replace(",", ""))
    def to_int(self):
        return int(self)

a = MyStr("2,678")
print int(a)
print a.to_int()

Python中没有这样的东西。可以通过以下方式列出字符串对象的所有方法和属性:

print dir("")

顺便说一下,您也可以用Java编写:

new Integer("2.3")

将Java的内部类型int与Python的int对象进行比较是不公平的。在Python中,没有基元类型。Python字符串、整数和浮点是对象,带有方法

不,这是正确的方法。每Zen of Python

There should be one-- and preferably only one --obvious way to do it.

要将字符串转换为整数,请始终执行以下操作:

my_integer = int(my_string)

您可以创建自己的类似字符串的类型(然后像这样使用:my_string = MyString('2678'); my_integer = my_string.to_int()),但不要这样做

在您的特定情况下,当然需要清除字符串中不属于整数的部分,但这取决于您的输入(您是否考虑过正则表达式,这是否更复杂?)

相关问题 更多 >