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

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

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

Author24 — интернет-сервис помощи студентам
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('...

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

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

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

2
28 / 23 / 8
Регистрация: 25.10.2009
Сообщений: 261
28.10.2013, 03:05 2
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 3
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
30.10.2013, 01:55
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2013, 01:55
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru