2016-06-21 48 views
-3

我需要在文本中找到重複的單詞精確索引。例如,請參閱下面的文字。如何查找文本中重複單詞的索引?

string text = "The first text area sample uses a dialog text to display the errors"; 
text.IndexOf("text"); 

在這個字符串中,單詞「text」被重複兩次。我需要得到兩個職位的索引。如果我們在上面的代碼中使用「IndexOf」,將始終返回10,這是第一個單詞「text」的索引。那麼,我們如何使用C#找到文本中重複單詞的確切索引。

回答

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++; 
} 
+0

'i'在當前上下文中不存在? '我'在哪裏申報/初始化? –

+0

更新了答案。 –

+0

該更新仍然會導致編譯錯誤。 'int'是一種在給定上下文中無效的類型。'int i = 0;'需要在循環之外聲明 –

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); 
相關問題