нужно реализовать парсер, который сначала делит текст на предложения, а потом предложения на слова, и помещает это в List<List<string>>(). Я сделал сначала разбиение по знакам пунктуации в один массив(предложения). Потом прошелся по этому массиву и разбил на другой(слова). Сделал пустой лист для слов. Потом создал stringbuilder для проверки на буквы, и если проверка проходила, то stringbuilder.toString добавлялся в лист со словами. На выходе из цикла лист со словами добавлялся в итоговый лист. Не могу пройти проверку с текстом ("a.b!c?d:e;f(g)h;i"). Нужен итог
var expected = new List<List<string>>
{
new List<string> {"a"},
new List<string> {"b"},
new List<string> {"c"},
new List<string> {"d"},
new List<string> {"e"},
new List<string> {"f"},
new List<string> {"g"},
new List<string> {"h"},
new List<string> {"i"}
};
Подскажите, где у меня ошибка, второй час бьюсь.
Вот код: https://dotnetfiddle.net/oqsxyz
Разве точка с запятой разделитель предложений?
Да, это в условии задачи указано
я это себе так представляю ,есть метод который принимает весь текст и передает лист слов (я увы не помню команду, вроде сплит , который делит на части ,при тригерру на слово,и ставишь пробел ) потом мы берем слова уже перекидываем в метод ,который выдает записывает уже по букве (через цикл прогнать и поместить каждую букву) вроде и все
типа в майн добавить? var final_sentencesList = new List<List<string>>(); final_sentencesList = SentencesParserTask.ParseSentences("a.b!c?d:e;f(g)h;i");
нет, в майне уже введен нужный код. сам метод у меня отрабатывает неправильно, он выдаёт Input text: [a.b!c?d:e;f(g)h;i] Sentence #0 is wrong Expected is <System.Collections.Generic.List`1[System.String]> with 1 elements, actual is <System.Collections.Generic.List`1[System.String]> with 9 elements Values differ at index [1] Extra: < "b", "c", "d"... >
Скобки, оказывается, тоже..как и двоеточие
Обсуждают сегодня