Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2015, 14:08   #1
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию Удаление слов из текста

Здравствуйте!
Было разбито текст на слова с помощью
string []t1 = text1.Split(' ');
string []t2 = text2.Split(' ');
подскажите пожалуйста, как удалить одинаковые слова в двух текстах?
kkrah вне форума Ответить с цитированием
Старый 13.02.2015, 14:39   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Ну тупо и в лоб - получить список одинаковых слов, а потом их уже удалять из текста)) Если не заморачиваться, то одинаковые слова можно получить так
Код:
string[] t3 = t1.Where(t2.Contains).ToArray(); // в т3 - одинаковые слова из т1 и т2
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 13.02.2015, 14:54   #3
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию

Как получить список одинаковых слова я знаю, проблемы именно с удалением
Как правильно записать функцию удаления?

Последний раз редактировалось kkrah; 13.02.2015 в 15:37.
kkrah вне форума Ответить с цитированием
Старый 13.02.2015, 17:34   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
Как получить список одинаковых слова я знаю
Приведите свой пример получения списка одинаковых слов, а то у меня есть сомнения в ваших словах. Сможете - помогу с удалением
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 16.02.2015, 13:10   #5
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию

хорошо, только я по-другому делаю
string []t1 = text1.Split(' ');
string []t2 = text2.Split(' ');
foreach (string s1 in t1)
foreach(string s2 in t2)
if(s1==s2){richtextbox.text += s1+ " ";}
string[] s3 = richtextbox.text.split(' ');

Я вот так делаю, принимаете? Да, больше текста и не особо практично, но мне понятней)
Ваша запись конечно лучше и я ее буду использовать)

Последний раз редактировалось kkrah; 16.02.2015 в 13:27.
kkrah вне форума Ответить с цитированием
Старый 16.02.2015, 13:20   #6
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию

Проблема с удалением состоит в том, что например нужно удалить слово "на", а получается:
Исходный:
направление знания на
а получается:
правление зния

Неприятно(
kkrah вне форума Ответить с цитированием
Старый 16.02.2015, 13:34   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык в коде выше удаления нет. Удаляйте слова, а не просто подстроки, если хотите удалять слова, а не просто подстроки.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 16.02.2015, 13:38   #8
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию

Удаления нет, так как я не знаю, как его написать
В коде просто массив одинаковых слов
kkrah вне форума Ответить с цитированием
Старый 16.02.2015, 17:36   #9
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Ну как обещал) Если принять, что текст есть массив слов, разделенных пробелами, то:

Код:
            t1 = t1.Where(p => !t3.Contains(p)).ToArray(); // имеем первый массив БЕЗ одинаковых со вторым слов
            string t1_string = string.Join(" ", t1); // так из массива можно получить строку обратно
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 16.02.2015, 21:39   #10
kkrah
Пользователь
 
Регистрация: 23.05.2013
Сообщений: 32
По умолчанию

Спасибо большое, Вы мне очень помогли и за хороший урок спасибо))
kkrah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление ненужных слов djmaluy Microsoft Office Excel 10 18.11.2015 14:32
Удаление слов в RichEdit Xo66um Общие вопросы Delphi 10 19.03.2014 11:05
Удаление слов из строки Pritcher Паскаль, Turbo Pascal, PascalABC.NET 2 15.02.2012 17:16
Удаление повторяющихся слов C vivo89 Помощь студентам 2 24.12.2009 09:18
Удаление слов из текста Gery Помощь студентам 24 22.09.2009 14:37