如何在文本中找到重复单词的索引?

时间:2016-06-21 18:37:04

标签: c#

我需要在文本中找到重复单词的确切索引。例如,请参阅以下文字。

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#找到文本中重复单词的确切索引。

2 个答案:

答案 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);