首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回字符串中的所有单词,直到给定的索引。

返回字符串中的所有单词,直到给定的索引。
EN

Stack Overflow用户
提问于 2020-04-26 20:19:11
回答 1查看 27关注 0票数 0

假设我有这个字符串,是42个字符

代码语言:javascript
复制
**
0         1         2       *2*  3         4
0123456789012345678901234567*8*90123456789012
The quick brown fox jumps ov*e*r the lazy dog
**

我想使用它作为一个搜索查询,搜索查询不能超过28个字符,这是我要做的

searchQuery = myString[:28]还>>快棕狐跳爱

然而,我希望它返回快速的褐狐跳跃,因为这是返回字符串中的全部单词。

EN

回答 1

Stack Overflow用户

发布于 2020-04-26 20:22:01

通过str.rindex查找空白的最后一个索引,然后切片:

代码语言:javascript
复制
def whole_words_upto(string, index): 
    return string[:string[:index].rindex(' ')]


whole_words_upto('The quick brown fox jumps over the lazy dog', 28)
# 'The quick brown fox jumps'

注意:不处理错误的输入或角落情况(这是您的任务;-)。

第二个选项是拆分和迭代,在返回之前检查单词的累积长度:

代码语言:javascript
复制
def whole_words_upto(string, index): 
    total_len = 0
    words = string.split()
    for i, s in enumerate(words):
        if i > 0 and total_len + len(s) >= index:
            return ' '.join(words[:i-1])
        total_len += len(s)

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

https://stackoverflow.com/questions/61447530

复制
相关文章

相似问题

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