powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как запихнуть в Replace() побольше значений
9 сообщений из 9, страница 1 из 1
Как запихнуть в Replace() побольше значений
    #36701615
alex-nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наскока я понял в Replace можно только старое значение поменять на новое
Replace("777","Б");

а как быть, если старых и новых значений пару десятков

777=Б
888=К
999=Ш
итд

как бы сделать чтобы красиво все автозаменялось по приведенной выше схеме, или тупо перегнать через цикл
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36704254
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-nn, во первых неясно, какой собственно язык программирования?
Допустим что VB/VBA - тогда можно список слов хранить в массиве, или в коллекции. Или даже в файле, Split'ом - раздробить по параметрам "что заменить" и "чем". ну а дальше обычным циклом
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36704535
alex-nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ентшульдигунг, т.е сорру
я в который раз забываю указать на С#
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36704545
alex-nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да я и реализовал все это через цикл. Я думал, можа я чего не догоняю---- можа это как то красивее надо бы реализовать.......
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36705075
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-nnа как быть, если старых и новых значений пару десятков

777=Б
888=К
999=Ш
итдРегексы в помощь.

Можно инкапсулировать всю логику в небольшой вспомогательный класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
using System.Collections.Generic;
using System.Text.RegularExpressions;

...

class MyDict : Dictionary<string, string>
{
	string rxs = string.Empty, rx = string.Empty;
	string _FN(Match m) { return this[m.Value]; }
	public new void Add(string k, string v) { base.Add(k, v); rx += rxs + k; rxs = "|"; }
	public string Replace(string s) { return Regex.Replace(s, rx, _FN); }
}

// указываем замены.
MyDict dict = new MyDict();
dict.Add("777", "Б");
dict.Add("888", "К");
dict.Add("999", "Ш");

string s = "a777888o1gfh999";
string s1 = dict.Replace(s); // заменяем
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36705101
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч, а теория?

Достаточно ли будет 1 цикла замен или цикл дожен продолжаться, пока сторока s подвержена изменениям?
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36705183
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯростный Меч, а теория?

Достаточно ли будет 1 цикла замен или цикл дожен продолжаться, пока сторока s подвержена изменениям?Это уже зависит от конкретных данных и от задачи.
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36705270
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я щас не помню терминологию, это называлось толи "Марковские Процессы", толи "Марковские замены" (никак не могу нагуглить), но если развить идею MyDict, то можно получить вычислительный модуль способный решать довольно сложные задачи на мини языке замен.
...
Рейтинг: 0 / 0
Как запихнуть в Replace() побольше значений
    #36706965
alex-nn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мерси
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как запихнуть в Replace() побольше значений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]