С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 3

Удалить все повторяющиеся слова в строке

20.09.2016, 06:01. Показов 3056. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Парсер собирает данные с сайта, в одну ячейку попадает такая строка "Белый,Черный,Белый,Черный,Черный,Белый, Черный,Белый"
Парсер отдает динамическому плагину эту ячейку в параметре "string s" и забирает ее же.
два дня читаю форумы, самоучители. получил следующий код, но мозгов не хватает так как с программированием совсем у меня пллохо. плагин что взял то и отдал
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
                            using System;
                            using System.Collections.Generic;
                            using System.Text;
                            using DynamicPluginData;
                            using System.Text.RegularExpressions;
                            using System.Linq;
                            
                            
                            namespace DatacolDynamicPluginNS
                            {                
                                public class DynamicPluginClass
                                {     
                                    public static string processDataFieldValue(string s, ItemInfo itemInfo, GlobalInfo globalInfo)
                                    {
                                        
                                        string str = s; //почему-то в массив не загоняется сразу
                                        
                                        string[] mass = str.Split(';'); // загоняем в массив указав разделитель
 
                                        mass = mass.Distinct().ToArray(); // фильтруем массив на повторы
 
                                        s = String.Join(";", mass); //возвращаем из массива в строку
                                        
                                        return s;
                                    }
                                }
                            }
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2016, 06:01
Ответы с готовыми решениями:

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

Удалить повторяющиеся слова в строке
Необходимо найти и сохранить в строке те слова, которые встречаются в последовательности по одному разу. Все остальные слова удалить....

Удалить из строки все повторяющиеся слова
Здравствуйте. Допустим вводим в командную строку предложение и нужно удалить одинаковые слова. Верен ли мой алгоритм постройки программы?...

5
26 / 27 / 21
Регистрация: 17.05.2016
Сообщений: 94
20.09.2016, 06:15
Цитата Сообщение от Skif42ru Посмотреть сообщение
string[] mass = str.Split(';'); // загоняем в массив указав раздели
Слова у вас разделяются запятыми, а вы разделяете точками с запятой.

Цитата Сообщение от Skif42ru Посмотреть сообщение
string str = s; //почему-то в массив не загоняется сразу
А так пробовали?
C#
1
string[] mass = s.Split(',').ToArray();
1
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
20.09.2016, 06:32
Лучший ответ Сообщение было отмечено Skif42ru как решение

Решение

С коленки
C#
1
2
3
4
5
6
7
8
9
10
11
using System.IO;
using System;
using System.Linq;
class Program
{
    static void Main()
    {
        string s="Белый,Черный,Белый,Черный,Черный,Белый";
        Console.WriteLine(String.Join(" ",s.Split(',').Distinct()));
    }
}
P.S. И не надо никаких массивов.
1
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 3
20.09.2016, 06:42  [ТС]
По разделителям это я старый код вставил не посмотрел, он сперва собирался через ;

C#
1
string[] mass = s.Split(',').ToArray();
так да короче получается

C#
1
2
3
4
5
6
7
string[] mass = s.Split(',').ToArray(); // загоняем в массив указав разделитель
 
mass = mass.Distinct().ToArray(); // фильтруем массив на повторы
 
s = String.Join(",", mass); //возвращаем из массива в строку
                                        
return s;
но на выходе значение S осталось входным.

Добавлено через 8 минут
Цитата Сообщение от Hikari Посмотреть сообщение
string s="Белый,Черный,Белый,Черный,Черный,Белы й";
только s уже пришла заполненой
Цитата Сообщение от Hikari Посмотреть сообщение
Console.WriteLine(String.Join(" ",s.Split(',').Distinct()));
C#
1
2
s = String.Join(" ",s.Split(',').Distinct());
return s
вернул "Белый,Черный,Белый,Черный,Черный,Бе лый"
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
20.09.2016, 09:17
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using System.Linq;
namespace pp
{
    class Program
    {
        public static string dist(string s){return String.Join(" ",s.Split(',').Distinct());}
        public static void Main(string[] args)
        {
            Console.WriteLine(dist("Белый,Черный,Белый,Черный,Черный,Белый,Черный,Белый"));
            Console.ReadKey(true);
        }
    }
}
Цитата Сообщение от Skif42ru Посмотреть сообщение
вернул "Белый,Черный,Белый,Черный,Черный,Бе лый"
Не может такого вернуть.
Проверяй еще.
0
0 / 0 / 0
Регистрация: 20.09.2016
Сообщений: 3
20.09.2016, 12:15  [ТС]
Спасибо все работало и с первого раза как оказалось
всего одна строчка нужна мне была. От себя добавил только регистронезависимость
C#
1
s=String.Join(",",s.ToLower().Split(',').Distinct( ));
Дело было в другом в S передавалась не вся строка ячейки сразу а данные по мере прохода парсера по полям.
Сейчас на профильном форуме парсера подкинули идею перед экспортом ячейку менять, буду изучать дальше.
C#
1
2
3
4
for(int i=0;i<dataTable.Rows.Count;i++)
{
dataTable.Rows[i]["имя поля"]=(object) String.Join(" ", dataTable.Rows[i]["имя поля"].ToString().Split(',').Distinct());
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2016, 12:15
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru