我需要在文本中找到重复单词的确切索引。例如,请参阅以下文字。
string text = "The first text area sample uses a dialog text to display the errors";
text.IndexOf("text");
在这个字符串中,单词" text"重复两次。我需要得到两个位置的指数。如果我们使用" IndexOf"如上面的代码将返回10 always,这是第1个单词的索引" text"。那么,我们如何使用C#找到文本中重复单词的确切索引。
答案 0 :(得分:4)
在循环中进行,C#
string text = "The first text area sample uses a dialog text to display the errors";
int i = 0;
while ((i = text.IndexOf("text", i)) != -1)
{
// Print out the index.
Console.WriteLine(i);
i++;
}
的JavaScript
var text = "The first text area sample uses a dialog text to display the errors";
var i;
while ((i = text.IndexOf("text", i)) != -1)
{
// Print out the index.
alert(i);
i++;
}
答案 1 :(得分:0)
这是javascript解决方案的可能duplicate question(可以使用任何语言):
以下是其他帖子给出的解决方案:
function getIndicesOf(searchStr, str, caseSensitive) {
var startIndex = 0, searchStrLen = searchStr.length;
var index, indices = [];
if (!caseSensitive) {
str = str.toLowerCase();
searchStr = searchStr.toLowerCase();
}
while ((index = str.indexOf(searchStr, startIndex)) > -1) {
indices.push(index);
startIndex = index + searchStrLen;
}
return indices;
}
getIndicesOf("le", "I learned to play the Ukulele in Lebanon.", false);