Вывести только те слова, которые встречаются в тексте ровно один раз - C# (194337)
Формулировка задачи:
Добрый день!
Помогите плз подкорректировать так, чтобы работало правильно, а именно: если в строке мы берем очередное слово, которое мы проверили ранее, оно не выводится.
То есть, если у нас строка "раз два два раз", у нас ничего не выводится. В моем же случае выводится "два раз"
StringBuilder InitialStr = new StringBuilder("раз два два три три раз"); Console.WriteLine("Исходная строка: " + InitialStr + "\n"); for (int i = 0; i < InitialStr.Length; ) if (char.IsPunctuation(InitialStr[i])) InitialStr.Remove(i, 1); else ++i; Console.WriteLine("Измененная строка: " + InitialStr + "\n"); string str = InitialStr.ToString(); str = str.Trim(); int k; Console.WriteLine("Одиночные слова: "); string[] word = str.Split(' '); for (int i = 0; i < word.Count(); ++i) // берем итое слово { k = 0; for (int j = i + 1; j < word.Count()-1; ++j) // берем следующее за итым слово if (word[i] == word[j]) ++k; // если следующее слово равняется итому, то к+1 if (k == 0) Console.WriteLine(word[i]); // если не найдено совпадений, выводим слово } Console.ReadKey();
Решение задачи: «Вывести только те слова, которые встречаются в тексте ровно один раз»
textual
Листинг программы
static void Main(string[] args) { string data = "раз два два три раз четыре пять"; var result = data.Split(new[] {' '}, StringSplitOptions.RemoveEmptyEntries) .GroupBy(x => x) .Where(x => x.Count() == 1) .Select(x => x.Key); foreach (var item in result) Console.Write(item + " "); Console.ReadLine(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д