Множественная замена

  • Автор темы Автор темы Do1phin
  • Дата начала Дата начала

Do1phin

Client
Регистрация
10.07.2015
Сообщения
16
Реакции
0
Баллы
3
Ребята, как произвести множественную замену криллицы на схожую латиницу и наоборот, только не кучей действий по очереди, а одним действием, за раз? Нужно заменить русские А на английские A и в этот же момент менять и английские A на русские А.
2XtXncc.png
 
я не знаю, как одновременно это сделать, но это можно сделать в несколько шагов

Шаг 1: Меняем русскую А на английскую А.
Шаг 2: Меняем английскую А на русскую А.

Проблема в том, что при втором шаге заменятся те буквы, которые у нас получились после выполнения шага 1. Вот и нужно сделать это одновременно, чтобы заменились и русские и английские буквы.
 
Шаг 1: Меняем русскую А на английскую А.
Шаг 2: Меняем английскую А на русскую А.

Проблема в том, что при втором шаге заменятся те буквы, которые у нас получились после выполнения шага 1. Вот и нужно сделать это одновременно, чтобы заменились и русские и английские буквы.
поэтому нужно 3 шага.
шаг 1. меняем англ А на шаблон, например #A#
шаг 2. Меняем рус А на англ А
шаг 3. Меняем шаблон на рус А
 
Через C# код.
Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
return str.Replace("a", "A").Replace("A", "a");
 
поэтому нужно 3 шага.
шаг 1. меняем англ А на шаблон, например #A#
шаг 2. Меняем рус А на англ А
шаг 3. Меняем шаблон на рус А

понял, да, это работает, только получится такое количество экшенов, ужас) оставлю на самый крайний случай, если не получится уже никаким другим способом это реализовать. Спасибо!:df:


Через C# код.
Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
return str.Replace("a", "A").Replace("A", "a");

Код то работает, но получается что выполняется сначала эта часть
Код:
Развернуть Свернуть Копировать
return str.Replace("a", "A").
а затем уже вторая
Код:
Развернуть Свернуть Копировать
Replace("A", "a");
и этот второй replace меняет назад то, что мы поменяли в первом, так что как-то нужно сделать замены эти за один заход.
 
Код:
Развернуть Свернуть Копировать
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");

Вот это работает отлично, а в чем может быть проблема, пытаюсь добавить туда еще несколько букв других, по аналогии с буквой A, но почему-то меняет только ее, а остальные строки кода будто не видит вообще. Буквы кириллицы и латиницы не путаю, с ними точно все ок.

Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
return str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
return str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
return str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
return str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
return str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
return str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
return str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
return str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
 
Вот это работает отлично, а в чем может быть проблема, пытаюсь добавить туда еще несколько букв других, по аналогии с буквой A, но почему-то меняет только ее, а остальные строки кода будто не видит вообще. Буквы кириллицы и латиницы не путаю, с ними точно все ок.

Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
return str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
return str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
return str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
return str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
return str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
return str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
return str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
return str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
return str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
срабатывает 1й ретурн
 
Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
str = str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
str = str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
str = str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
str = str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
str = str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
str = str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
str = str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
str = str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
str = str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
return str;
 
  • Оценить
Реакции: Do1phin
Код:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value;
str = str.Replace("А", "#А#").Replace("A", "А").Replace("#А#", "A");
str = str.Replace("В", "#В#").Replace("B", "В").Replace("#В#", "B");
str = str.Replace("С", "#С#").Replace("C", "С").Replace("#С#", "C");
str = str.Replace("Е", "#Е#").Replace("E", "Е").Replace("#Е#", "E");
str = str.Replace("Н", "#Н#").Replace("H", "Н").Replace("#Н#", "H");
str = str.Replace("К", "#К#").Replace("K", "К").Replace("#К#", "K");
str = str.Replace("О", "#О#").Replace("O", "О").Replace("#О#", "O");
str = str.Replace("Т", "#Т#").Replace("T", "Т").Replace("#Т#", "T");
str = str.Replace("Р", "#Р#").Replace("P", "Р").Replace("#Р#", "P");
return str;


Большое спасибо! Все работает идеально!):ay:
 
Прям Кэп!
Из серии - Как сделать Множественную замену - Делайте множественную замену, чего голову ломать )
я не говорил множественную я говорил тройную это совсемразные вещи
 
Все прям как в жизни, кто то просто говорит, а кто то делает. большая разница
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)