javascript - 如何使用特定字符的索引搜索特定单词的索引
问题描述
比如说我有下面的话
THIS TEXT IS A SAMPLE TEXT
我的字符索引为 7。
然后,当我将句子拆分为单词时,我必须返回索引 1,这是包含字符索引的单词的索引,而不是 5,它与构成字符索引的单词完全匹配,但与字符所在的正确索引不匹配。
基本上我正在尝试使用字符索引(当与字符分割时)返回字符所在位置的正确单词索引(当拆分为单词时)
我想我会用类似下面的东西来重建这个词,以在字符处找到这个词
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,但我可以尝试自己翻译任何其他语言
解决方案
我认为您可以只计算给定索引之前出现的空格,例如
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);
}
}
}
推荐阅读
- reactjs - 如何单击图像并在新窗口中打开链接以做出反应?
- c - 如何将带有alpha的十六进制字符串转换为c中的GdkRGBA?
- python - Django从特定行的表中聚合数据
- php - 无法使用 PHP 获取从 MySQL 添加的最新数据
- typescript - 从推断的 TypeScript 接口生成显式接口代码
- kubernetes - 尽管有重复的对象,但部署多个 Helm 图表
- amazon-web-services - 将 Secrets Manager 参数引用到密钥字符串
- node.js - NodeJS以不同方式将文件附加到源文件
- php - 如何计算两列之间的平均值?
- html - 如何在 iframe 中打开此图像?