假设我有这个字符串,是42个字符
**
0 1 2 *2* 3 4
0123456789012345678901234567*8*90123456789012
The quick brown fox jumps ov*e*r the lazy dog
**我想使用它作为一个搜索查询,搜索查询不能超过28个字符,这是我要做的
searchQuery = myString[:28]还>>快棕狐跳爱
然而,我希望它返回快速的褐狐跳跃,因为这是返回字符串中的全部单词。
发布于 2020-04-26 20:22:01
通过str.rindex查找空白的最后一个索引,然后切片:
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'注意:不处理错误的输入或角落情况(这是您的任务;-)。
第二个选项是拆分和迭代,在返回之前检查单词的累积长度:
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 stringhttps://stackoverflow.com/questions/61447530
复制相似问题