2015-06-21 7 views
1

У меня есть массив строк, т.е.как проверить начальный/конечный слово в длинном пространстве разделителей строка

string[] input_Text = new string[] { "i am wanting to take admission in the univeristy of the islamabad", "we are enjoying all the talent here at the city of atlanta", "what are you doing there" }; 

и массив игнорируемых слов, т.е.

string[] stopWords = new string[] { " are ", " am ", " all ", " at ", " here ", " i ", " in ", " of ", " take ", " the ", " there ", " to ", " what ", " we ", " you " }; 

Я должен заменить игнорируемые слова в input_Text с " "(whiteSpace), но проблема в том, что у меня есть« i »в массиве stopWords, а текст содержит« i »при запуске означает, что в начале« i »нет пробелов. Таким образом, проблема заключается в том, что начальные и конечные строки слов в тексте не совпадают с stopWords, поэтому невозможно удалить эти слова. Цикл, который я использую, является ...

for (int i = 0; i < input_Text.Count(); i++) 
{ 
    for (int j = 0; j < stopWords.Count(); j++) 
    { 
     input_Text[i] = input_Text[i].Replace(stopWords[j], " "); 
    } 
    } 

Любые предложения будут высоко оценены.

+0

Одним из способов может быть разделение 'input_Text' с использованием' '' 'в качестве разделителя и запуск теста для каждого элемента (= каждое слово). В списке остановленных слов вам не понадобятся ведущие и завершающие пробелы. В конце рекомбинируйте в одну строку с пробелами между ними. –

ответ

0

Учитывая ваши данные, вы можете добавить пробел в начало и конец input_Text перед тем Replace, и удалить их впоследствии:

string s = " " + input_Text[i] + " "; 
s = s.Replace(stopWords[j], " "); 
input_Text[i] = s.Substring(1, s.Length - 2); 

Не очень эффективный, но должен работать нормально.

 Смежные вопросы

  • Нет связанных вопросов^_^