首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何搜索具有特定字符索引的特定单词索引

如何搜索具有特定字符索引的特定单词索引
EN

Stack Overflow用户
提问于 2018-08-03 08:50:15
回答 5查看 338关注 0票数 0

举个例子,我有下面的话

代码语言:javascript
复制
THIS TEXT IS A SAMPLE TEXT

我被赋予字符索引7。

然后,当我将句子分割成单词时,我必须返回索引1,这是包含字符索引的单词的索引,而不是与构成字符索引的单词完全匹配的5,而不是字符所在的正确索引。

基本上,我试图用字符索引(与字符拆分时)返回字符所在位置(分词时)的正确的单词索引。

我想我应该用下面这样的东西来重建这个单词,以便在字符处找到这个单词。

代码语言:javascript
复制
let curString = 'find a word from here';
let initialPositin = 5
let position = initialPositin

let stringBuilder = '';

while(position > -1 && curString.charAt(position) !== ' '){
  console.log('run 1')
  console.log(position);

  stringBuilder = curString.charAt(position) + stringBuilder;

  position --;
}

console.log(stringBuilder)

position = initialPositin + 1;

while(position < curString.length && curString.charAt(position) !== ' '){
  console.log('run 2')

  stringBuilder += curString.charAt(position);

  position ++;
}

console.log(stringBuilder);

然后将句子分割成单词,然后找到包含我所构造的单词的所有索引。然后遍历所有已发现的单词,并重建先前的单词,以查看重建中的目标字符的索引是否与给定的字符位置匹配。

感觉不太有效率。有人有更好的建议吗?

我更喜欢javascript,但我可以自己翻译任何其他语言。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-08-03 09:03:47

我认为您可以只计算给定索引之前发生的空格,比如

代码语言:javascript
复制
let curString = 'find a word from here';
let givenIndex = 9;

let spaceIndex = 0;
for (var i = 0; i < curString.length; i++) {
  if(curString.charAt(i) == ' ') {
      if (i < givenIndex) {
          spaceIndex++;
      } else {
          // found what we need
          console.log(spaceIndex);
      }
  }
}
票数 3
EN

Stack Overflow用户

发布于 2018-08-03 08:56:43

也许您可以构建一个返回所有空格位置的函数。然后,您可以看到字符索引在空格位置列表中的位置。

票数 0
EN

Stack Overflow用户

发布于 2018-08-03 09:14:07

代码语言:javascript
复制
text = "THIS TEXT IS A SAMPLE TEXT"
indexes = []
current_word = 0

for i in range(0, len(text)):

    if text[i] == ' ':
        current_word += 1  # After a ' ' character, we passed a word
    else:
        indexes.append(current_word)  # current character belongs to current word

您可以使用这段代码(用Python3编写)构建一次索引数组,然后可以将其用于每个索引。如果您也想在索引数组中计数‘’字符,可以简单地将它们添加到for循环中(在If语句中)。

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

https://stackoverflow.com/questions/51668748

复制
相关文章

相似问题

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