Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/49: Рейтинг темы: голосов - 49, средняя оценка - 4.76
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 148

Поиск определенного слова в строке и замена определенного символа после этого слова

15.07.2011, 03:20. Показов 9911. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Представим что у нас есть следующая строка:
"Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде 1 мощного удара по яйцам."

Требуется вторую цифру 1 заменить на 2. Это можно сделать следующим образом:
C#
1
2
string Text = "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде 1 мощного удара по яйцам.";
Text.Replace("1", "2");
но тут возникает загвоздка, у нас в начале строки есть цифра 1 (в десятке) и выходит что заменяется и она. А надо заменить только вторую единицу пропустив при этом первую. Каким образом это можно сделать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2011, 03:20
Ответы с готовыми решениями:

Считать из файла от определенного символа(слова) до определенного символа(слова)
Считываем текст из файла. Допустим от слова "Qwerty" до слова "Uiop". Примерно догадываюсь как это реализовать FILE *f; char s;...

Вставка символа после определенного слова в текстбоксе
нужно вставить после 6-ого символа в текстбоксе (text1.text) букву 'а', каким способом можно сделать это

Извлечение данных из txt после определенного слова или символа
Здрасте,нужно скопировать из 1.txt и сохранить определенное значение. Пример текста:...

5
 Аватар для alaron
7 / 7 / 2
Регистрация: 04.11.2009
Сообщений: 35
15.07.2011, 04:24
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
List<int> temp = new List<int>();
            char[] a;
            string Text = "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде 1 мощного удара по яйцам.";
            for (int i = 0; i < Text.Length; i++)
            {
               if (Text[i] == '1' )
               if (Text[i - 1] == ' ' & Text[i + 1] == ' ')
                {
                    temp.Add(i);
                }
            }
            a = Text.ToCharArray();
            foreach(int t in temp)
            {
                a[t] = '2';
            }
            Text = string.Empty;
            for (int i = 0; i < a.Length; ++i) 
            {
                Text += a[i];
            }
0
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 148
15.07.2011, 06:02  [ТС]
Цитата Сообщение от alaron Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
List<int> temp = new List<int>();
            char[] a;
            string Text = "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде 1 мощного удара по яйцам.";
            for (int i = 0; i < Text.Length; i++)
            {
               if (Text[i] == '1' )
               if (Text[i - 1] == ' ' & Text[i + 1] == ' ')
                {
                    temp.Add(i);
                }
            }
            a = Text.ToCharArray();
            foreach(int t in temp)
            {
                a[t] = '2';
            }
            Text = string.Empty;
            for (int i = 0; i < a.Length; ++i) 
            {
                Text += a[i];
            }
Спасибо конечно, но есть одно но:
стоит удалить хотябы один пробел около единицы и цифра не меняется...нельзя ли сделать так чтобы в любом тексте работал поиск и замена как я описал выше??
0
2 / 2 / 0
Регистрация: 01.07.2011
Сообщений: 29
15.07.2011, 06:16
Упс, извиняюсь. Это вам не поможет. Ниже можно не читать.

Ну, можно сделать вот так...
C#
1
2
3
4
5
6
7
8
9
10
11
12
StringBuilder builder = new StringBuilder();
            string Text = "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде     1 мощного удара по яйцам.";
            string[] temp = Text.Split(' ');
            for (int i = 0; i < temp.Length; i++)
            {
                if (temp[i] == "1")
                {
                    temp[i] = temp[i].Replace("1","2");
                }
                builder.Append(temp[i] + " ");
            }
            Text = builder.ToString();
0
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 148
15.07.2011, 06:24  [ТС]
хм..а че у вас такие большие способы замены??..
я ща помозговал и подумал что все можно упростить донельзя:
C#
1
2
string Text = "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася оказался не трусом и дал сдачи в виде     1 мощного удара по яйцам.";
Text = Text.Replace(" 1 ", " 2 ");
и зачем вы столько много писали...
0
 Аватар для Japanese
9 / 9 / 1
Регистрация: 14.11.2010
Сообщений: 148
15.07.2011, 07:23  [ТС]
Цитата Сообщение от change Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
          string Text = "1. Дядя Петя 10 раз ударил дядю Васю10, но дядя 21Вася оказался не тру18сом и дал сдачи в виде 1 мощного удара по яйцам1.";
          char []  text = (" " + Text + " ").ToArray();
            for (int i = 1; i < text.Length - 1; i++)
            {
                if (text[i] == '1' && !Char.IsDigit(text[i + 1]) && !Char.IsDigit(text[i - 1]))
                    text[i] = '2';
            }
 
           
            Text = string.Join("", text).Trim();
Добавлено через 1 минуту
Japanese, ты же сам говорил, что надо учесть вариант, когда перед единицей не будет пробела.
я не это имел ввиду..я говорил про то чтобы в любом тексте можно было изменить указанный символ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.07.2011, 07:23
Помогаю со студенческими работами здесь

Поиск определённого слова в каждой строке текстового файла
Здравствуйте. Есть вот такой код для поиска определенного слова в строке взятой из файла: @echo off setlocal...

Поиск определенного слова и удаление строк после него
Здравствуйте. Есть файл с таблицей. Необходимо найти определенное слово, удалить(очистить) строку его содержащую и все строки после неё....

Добавление заданной записи после определённого слова в указанной строке
Здравствуйте! Имеется файл &quot;variable.php&quot; с таким содержимым: &lt;? $abracadabra = ; ?&gt; Требуется с помощью bat добавить...

C# C++ Задача поиск определенного символа в строке, запись того что после него в дргую строку
Вот пошагово: 1)Создать файл из символов, последний символ *(маркер) 2)После маркера записать ешё некоторое кол-во символов 3)...

Замена определенного символа в строке
Добрый день! Задача такая: есть строка вида &quot;00000001&quot; Если первые два символа &quot;00&quot;, то заменить их на букву &quot;A&quot;,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru