首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >str.count()方法中的错误结果

str.count()方法中的错误结果
EN

Stack Overflow用户
提问于 2020-04-21 23:24:05
回答 4查看 473关注 0票数 4

我混淆了一个非常简单的字符串计数操作:

代码语言:javascript
复制
s = 'BANANA'
s.count('ANA')

这应该会导致2,对吧?由于子字符串,ANABANANA中出现了2次。

但结果是我得到了一个。

代码语言:javascript
复制
>>> s = 'BANANA'
>>> s.count('ANA')
1

不知道为什么结果不对。这是如此简单的操作!

感谢你的帮助。

PS:如何解决这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-21 23:27:58

string.count()不计算重叠出现的次数。

如果要计数重叠事件,则字符串上的一个简单循环将对其进行计数:

代码语言:javascript
复制
s = 'BANANA'
i = 0
cnt = 0
while True:
    i = s.find('ANA', i)
    if i >= 0:
        i += 1
        cnt += 1
    else:
        break

或者,您也可以使用regex,如下面@Henrique的答案中所示。

票数 5
EN

Stack Overflow用户

发布于 2020-04-21 23:27:22

问得好。但是()不会“回溯”。一旦找到第一个“阿拉伯核机构”,它就会通过剩下的两个字母"NA“向前看。

这种“前向搜索”与大多数编程语言相同,例如Java indexOf()、C strstr()和VB.Net InStr()

票数 4
EN

Stack Overflow用户

发布于 2020-04-21 23:29:26

在“香蕉”中,只有一个完整的“ANA”。Count()返回1,因为在找到'ANA‘之后,只剩下'NA’。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61354839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档