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

Как проверить наличие слова в строке?

20.03.2014, 13:32. Показов 33568. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть строка
C#
1
string text = File.ReadAllText("file.txt");
Как мне узнать есть ли там нужное мне слово?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.03.2014, 13:32
Ответы с готовыми решениями:

Проверить на наличие слова в строке без учета регистра
Проверить на наличие слова в строке БЕЗ УЧЕТА РЕГИСТРА. Попробовал IndexOf и Contains, регистр учитывается... Кто может помочь с решением?

Как проверить наличие подстроки в строке
Здравствуйте. Хотел бы узнать, как проверить, есть ли слово внутри STL строки? unsigned int wordcount; cin >>...

Как проверить в Ls наличие текста в строке?
В @ есть @Like, а в LS аналогов найти не могу (((

8
 Аватар для pokerface
209 / 174 / 48
Регистрация: 20.09.2012
Сообщений: 481
20.03.2014, 13:33
Лучший ответ Сообщение было отмечено BTF как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
StreamReader sr = new StreamReader("file.txt", Encoding.Default);
            string s = sr.ReadToEnd();
            sr.Close();
            if (s.IndexOf("ваше слово!!!") > -1)
            {
                MessageBox.Show("Слово найдено");
            }
            else
            {
                MessageBox.Show("Слова нет в заданом тексте");
            }
Альтернативный вариант
C#
1
2
3
4
5
6
7
8
9
10
11
StreamReader sr = new StreamReader("file.txt", Encoding.Default);
            string s = sr.ReadToEnd();
            sr.Close();
            if (s.Contains("ваше слово"))
            {
                MessageBox.Show("Слово найдено");
            }
            else
            {
                MessageBox.Show("Слова нет в заданом тексте");
            }
0
3 / 3 / 3
Регистрация: 06.08.2012
Сообщений: 26
23.03.2014, 01:14
Методом POKERFACE работает несовсем корректно, так лучше:
(проверте при таких входных данных)

string str = " ночью лунатик ходил по стене"; // входная строка
string word = "луна"; // слово для поиска

string[] box = str.Split();
bool e = false;

foreach(string s in box)
if (word == s)
{
e = true;
break;
}

if(e)
Console.WriteLine("\n Ваше слово ЕСТЬ в строке .");
else
Console.WriteLine("\n Вашего слова НЕТУ в строке .");
0
Заблокирован
23.03.2014, 01:24
Цитата Сообщение от ~SERG Посмотреть сообщение
Методом POKERFACE работает несовсем корректно, так лучше:
~SERG, пример, при котором программа некорректно работает?
1
3 / 3 / 3
Регистрация: 06.08.2012
Сообщений: 26
23.03.2014, 01:31
В задании требуется поиск СЛОВА , а не подстроки.
0
48 / 48 / 22
Регистрация: 18.11.2013
Сообщений: 92
23.03.2014, 02:31
вариант с регуляркой
C#
1
2
3
4
5
6
            
String pattern = @"\b(слово)\b";
if (Regex.IsMatch(s, pattern, RegexOptions.IgnoreCase))
    Console.WriteLine("найдено");
else
    Console.WriteLine("не найдено");
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6101 / 4957 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.03.2014, 02:33
nb-np, для таких случаев годится обычный string.IndexOf
0
 Аватар для pokerface
209 / 174 / 48
Регистрация: 20.09.2012
Сообщений: 481
23.03.2014, 11:54
Лучший ответ Сообщение было отмечено BTF как решение

Решение

~SERG, ггг) окей) Давайте ка найдем слово лунактик вот в такой строке "он лунатик, это печально" по Вашему корректному методу=)
код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 string str = "он лунатик, это печально"; // входная строка
            string word = "лунатик"; // слово для поиска 
            string[] box = str.Split(' ');
            bool k = false;
 
            foreach (string s in box)
                if (word == str)
                {
                    k = true;
                    break;
                }
            if(k)
                MessageBox.Show("Слово найдено");
            else
                MessageBox.Show("Слова нет в заданом тексте");
И получается что слова нет в тексте? оО Вот, вот.
В любой софтине ( практически любой ) используется поиск подстроки, чтобы найти слово. Попробуйте в том же Word или любом браузере.
Ваш метод, не плох, но это уж для слишком идеальных ситуация. Всегда нужно будет учитывать запятые, точки, знаки восклицания, вопроса, лишние пробелы итд.
0
48 / 48 / 22
Регистрация: 18.11.2013
Сообщений: 92
23.03.2014, 14:04
Psilon, pokerface

C#
1
2
3
4
5
6
7
8
9
10
11
            String s = @"какое то предложение";
            String pattern = @"\b(как)\b";
            if (Regex.IsMatch(s, pattern, RegexOptions.IgnoreCase))
                Console.WriteLine("найдено");
            else
                Console.WriteLine("не найдено");
 
            if (s.IndexOf("как") == -1)
                Console.WriteLine("не найдено");
            else
                Console.WriteLine("найдено");
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2014, 14:04
Помогаю со студенческими работами здесь

Как проверить наличие определённого слова в столбце?
Здравствуйте! :) Уважаемые форумчане, Есть столбец ячеек в которых находятся слова, например "ликвид" или "порох", в...

Как проверить конец строки на наличие определенного слова?
Добрый вечер! Подскажите пожалуйста, как реализовать следующее.. В Memo формируется одна строка, в ней может до 20 раз повторятся одно и...

Проверить наличие подстроки в строке
Здравствуйте, после долгих попыток соорудить что-то самостоятельно пишу сюда в надежде на вашу помощь. Имеется строка:...

Проверить наличие имени в строке
У меня есть строка, допустим, такая: Вася;Вася>привет И мне нужно проверить, есть ли между символами ';' и '>' никнейм, который...

Qt проверить наличие подстроки в строке?
"Works at Universidad de las Ciencias Informáticas" "Rugaya Bais and 3 other mutual friends" "Delphine Besse-hali is a mutual friend." ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru