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

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

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

как бы сделать чтобы красиво все автозаменялось по приведенной выше схеме, или тупо перегнать через цикл
...
Рейтинг: 0 / 0
23.06.2010, 20:00:43
    #36704254
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запихнуть в Replace() побольше значений
alex-nn, во первых неясно, какой собственно язык программирования?
Допустим что VB/VBA - тогда можно список слов хранить в массиве, или в коллекции. Или даже в файле, Split'ом - раздробить по параметрам "что заменить" и "чем". ну а дальше обычным циклом
...
Рейтинг: 0 / 0
23.06.2010, 22:49:58
    #36704535
alex-nn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запихнуть в Replace() побольше значений
ентшульдигунг, т.е сорру
я в который раз забываю указать на С#
...
Рейтинг: 0 / 0
23.06.2010, 22:53:05
    #36704545
alex-nn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запихнуть в Replace() побольше значений
да я и реализовал все это через цикл. Я думал, можа я чего не догоняю---- можа это как то красивее надо бы реализовать.......
...
Рейтинг: 0 / 0
24.06.2010, 10:26:57
    #36705075
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запихнуть в Replace() побольше значений
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
24.06.2010, 10:35:31
    #36705101
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запихнуть в Replace() побольше значений
Яростный Меч, а теория?

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

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


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