Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 8

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения

27.10.2013, 22:06. Показов 1681. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
 
namespace лаба_7
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                StreamWriter sw = new StreamWriter(saveFileDialog1.FileName);
                   //Создаем новый объект StreamWriter и передаем ему название выбранного файла
                sw.WriteLine(richTextBox1.Text); 
                                      //Содержимое richTextBox1 записываем в файл
                sw.Close();      //Закрываем поток
            }
 
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            //если в окне диалога был выбран файл 
            {
                string s = openFileDialog1.FileName;
                // в переменную s запоминаем название выбранного файла
                StreamReader sr = new StreamReader(s);
                //создаем новый объект StreamReader и передаем ему переменную s
                richTextBox1.Text = sr.ReadToEnd();
                //Читаем весь файл и записываем его в richTextBox1
                sr.Close();     // Закрываем поток
            }
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            string s = richTextBox1.Text;
            richTextBox1.Text = "";
            string[] Words = s.Split();
            int n = Words.Count();
            for (int i = 0; i < n - 2; i++)
            {
                for (int j = i; j < n - 1; j++)
                    if (Words[i] == Words[j + 1]) Words[j + 1] = "";
            }
            // далее наверняка есть более эффективный способ вернуть  //в textBox1
            //все значения массива Words,
            //что-нибудь вроде метода Join(), но как вариант
            for (int i = 0; i < n; i++)
                richTextBox1.Text += Words[i] + " ";
        }
    }
}
Добавлено через 1 минуту
Подскажите как сюда теперь добавить: Подсчитать сколько раз заданное слово встречается в сообщении, и каждое его вхождение заменить на другое заданное слово.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2013, 22:06
Ответы с готовыми решениями:

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения
Здравствуйте, подскажите, что не так Использую для удаления one = string.Join(&quot; &quot;, one.Split(' ').Distinct()); но выводит...

Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения
1. Удалить из сообщения все повторяющиеся слова (без учета регистра) кроме первого вхождения. private void button2_Click(object sender,...

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Ребят здравствуйте! Вот код моей программы StreamReader sr = File.OpenText(AppDomain.CurrentDomain.BaseDirectory +...

2
29 / 24 / 8
Регистрация: 25.10.2009
Сообщений: 265
28.10.2013, 03:05
C#
1
2
3
4
5
6
7
8
9
10
int wordCount;
for (int i =0; i < n; i++)   
{
   if (Words[i] == "Заданное_слово")
   {
      Words[i] = "Другое_заданное_слово";
      wordCount++;
   }
}
//вернуть в textBox1
Ваш способ вернуть плохой, т.к. при таком способе Вы потеряете все знаки препинания. Код сейчас не напишу, спать ложусь, но идею подкину. У RichTextBox есть метод Find, а так же методы Cut, Copy и Paste, а ещё есть свойство AutoWordSelection и что более интересно, есть свойство SelctedText для которого есть методы CompareTo, CopyTo, Remove, Replace и на всякий случай Insert.
Учитывая всё это, лучше переписать алгоритм полностью, не используя разбития текста на массив, а делая поиск и замены сразу в текстбоксе.

Добавлено через 7 минут
А ещё есть LinQ в котором я не силён, но в котором наверняка всё это делается в пару строчек. Гугл с Яндексом в помощь. Или может кто подскажет как это в LinQ делается...
1
208 / 164 / 29
Регистрация: 11.09.2013
Сообщений: 445
30.10.2013, 01:55
C#
1
2
3
4
5
6
7
            string pattern = "Искомое слово", text = "Исходный текст, в котором Искомое слово встречается дважды (Искомое слово)";
            int position = text.IndexOf(pattern, 0), foundWords = 0;
            while (position >= 0)
            {
                foundWords++;
                position = text.IndexOf(pattern, position + 1);
            }
Добавлено через 1 минуту
C#
1
2
3
string pattern = "Искомое слово", newString = "Заменим на эту строку";
string text = "Исходный текст, в котором Искомое слово встречается дважды (Искомое слово)";
text = text.Replace(pattern, newString);
Добавлено через 1 минуту
чтобы не учитывать регистр, сделайте ToLower() паттерну и исходному тексту перед поиском
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2013, 01:55
Помогаю со студенческими работами здесь

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Приветствую! Очень нужна помощь, не могу разобраться. Надо написать программу, где нужно удалить из сообщения все повторяющиеся слова...

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Удалить из...

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Есть подобные темы, но решения нет. Удалить из сообщения все повторяющиеся слова (без учета регистра). Жирным выделена проблема....

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Удалить из...

Удалить из сообщения все повторяющиеся слова (без учета регистра)
Помогите пожалуйста! Почему программа работает только при конкретных(некоторых) предложениях, в других случаях неправильно находит. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru