Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
1

Замена символа на их сочетание - происходит множественная замена

11.09.2014, 01:38. Показов 1373. Ответов 10
Метки нет (Все метки)

примером есть у меня текст типа "globus" замена у меня происходит так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    gg = gg.Replace("a", "1bf");
            gg = gg.Replace("b", "8dc");
            gg = gg.Replace("c", "2da");
            gg = gg.Replace("d", "0gg");
            gg = gg.Replace("e", "4qe");
            gg = gg.Replace("f", "9rf");
            gg = gg.Replace("g", "1xv");
            gg = gg.Replace("h", "7sn");
            gg = gg.Replace("i", "5pf");
            gg = gg.Replace("j", "0pg");
            gg = gg.Replace("k", "5kl");
            gg = gg.Replace("l", "3vb");
            gg = gg.Replace("m", "4ec");
            gg = gg.Replace("n", "2jc");
            gg = gg.Replace("o", "1nz");
            gg = gg.Replace("p", "6pf");
            gg = gg.Replace("q", "8sf");
            gg = gg.Replace("r", "6ty");
            gg = gg.Replace("s", "3jc");
            gg = gg.Replace("t", "0yy");
            gg = gg.Replace("u", "5ks");
            gg = gg.Replace("v", "1jr");
            gg = gg.Replace("w", "5dm");
            gg = gg.Replace("x", "2hd");
            gg = gg.Replace("y", "8ts");
            gg = gg.Replace("z", "2ef");
            gg = gg.Replace("/", "7hd");
            gg = gg.Replace(":", "9ud");
            gg = gg.Replace(".", "6op");
и получается что буквы заменяются по пару раз и я потом никак не смогу это восстановить. как этого избежать?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2014, 01:38
Ответы с готовыми решениями:

Замена данного символа на любое сочетание символов.(Тип данных string)
Написать программу которая каждую встречную букву Б будет заменять сочетанием КУ. Понимаю что...

Множественная замена в тексте
Пишу мини-транслятор..столкнулся с проблемой: не могу заменить несколько слов Dim File As New...

str_replace и множественная замена
есть два массива $mas1 = array(1, 2, 3, 4, 5, 6, 7, 8, 9); $mas2 = array(6, 25, 20, 25, 50, 25,...

Множественная замена в строке
допустим есть строка s и в ней нужно заменить множество вхождений, делаю я примитивно так: s =...

10
Эксперт .NET
15041 / 11394 / 2994
Регистрация: 17.09.2011
Сообщений: 19,111
11.09.2014, 02:46 2
Ухх, бодренько!

Замените эту портянку на один цикл по изначальной строке с вставкой соответствующих символов в StringBuilder.
C#
1
2
3
4
5
6
7
8
9
10
11
var buffer = new StringBuilder(gg.Length * 3);
var map = new Dictionary<char, string>
{
   { 'a', "8dc" },
   { 'b', ... },
}
 
foreach (char c in gg)
   buffer.Append(map[c]);
 
gg = buffer.ToString();
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
11.09.2014, 16:28  [ТС] 3
как это вставить? вместо этого
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
string gg=textBox2.Text;
            gg = gg.Replace("1ё", "a");
            gg = gg.Replace("8э", "b");
            gg = gg.Replace("2ε", "c");
            gg = gg.Replace("0ξ", "d");
            gg = gg.Replace("4ě", "e");
            gg = gg.Replace("9Ė", "f");
            gg = gg.Replace("1ф", "g");
            gg = gg.Replace("7Õ", "h");
            gg = gg.Replace("5ờ", "i");
            gg = gg.Replace("0ớ", "j");
            gg = gg.Replace("5Ợ", "k");
            gg = gg.Replace("3Ǿ", "l");
            gg = gg.Replace("4θ", "m");
            gg = gg.Replace("2Ę", "n");
            gg = gg.Replace("1ع", "o");
            gg = gg.Replace("6Ő", "p");
            gg = gg.Replace("8Ф", "q");
            gg = gg.Replace("6Ø", "r");
            gg = gg.Replace("3jc", "s");
            gg = gg.Replace("0Ở", "t");
            gg = gg.Replace("5Ě", "u");
            gg = gg.Replace("1טם", "v");
            gg = gg.Replace("5Σ", "w");
            gg = gg.Replace("2З", "x");
            gg = gg.Replace("8©", "y");
            gg = gg.Replace("2Ð", "z");
            gg = gg.Replace("7ŋ", "/");
            gg = gg.Replace("9ΰ", ":");
            gg = gg.Replace("6ω", ".");
            gg = gg.Replace("6Ř", "{");
            gg = gg.Replace("7₣", "}");
            gg = gg.Replace("4Ә", "=");
            gg = gg.Replace("7ξ", "&");
            textBox3.Text = gg;
0
288 / 269 / 107
Регистрация: 10.06.2011
Сообщений: 696
11.09.2014, 16:33 4
C#
1
gg=buffer.ToString();
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
11.09.2014, 17:42  [ТС] 5
Замена символа на их сочетание - происходит множественная замена
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
11.09.2014, 18:19  [ТС] 6
Замена символа на их сочетание - происходит множественная замена


 Комментарий модератора 
Загружайте вложения на форум: см. тут
0
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
11.09.2014, 18:35 7
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
static void Main(string[] args)
        {
            string gg = "6Ř1ё8э8э1ё7₣";            
 
            var map = new Dictionary<string, string>  
            {
            {"1ё", "a"},
            {"8э", "b"},
            {"2ε", "c"},
            {"0ξ", "d"},
            {"4ě", "e"},
            {"9Ė", "f"},
            {"1ф", "g"},
            {"7Х", "h"},
            {"5ờ", "i"},
            {"0ớ", "j"},
            {"5Ợ", "k"},
            {"3Ǿ", "l"},
            {"4θ", "m"},
            {"2Ę", "n"},
            {"1ع", "o"},
            {"6Ő", "p"},
            {"8Ф", "q"},
            {"6Ш", "r"},
            {"3jc", "s"},
            {"0Ở", "t"},
            {"5Ě", "u"},
            {"1טם", "v"},
            {"5Σ", "w"},
            {"2З", "x"},
            {"8©", "y"},
            {"2Р", "z"},
            {"7ŋ", "/"},
            {"9ΰ", ":"},
            {"6ω", "."},
            {"6Ř", "{"},
            {"7₣", "}"},
            {"4Ә", "="},
            {"7ξ", "&"}
            };         
 
            string result = string.Join("", Regex.Matches(gg, string.Join("|", map.Select(x => Regex.Escape(x.Key)).ToArray<string>())).Cast<Match>().Select(x => map[x.Value]).ToArray<string>());
           
            Console.WriteLine(result);   
        }
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
11.09.2014, 21:36  [ТС] 8
тоже самое
Замена символа на их сочетание - происходит множественная замена


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 private void textBox1_TextChanged(object sender, EventArgs e)
        {        // ο Ό Ο ό ó ό θ σ  ǿ  Ф Θ ò Ó Ò Ô ô Ö ö  õ   ọ Ọ ợ  ø Ø Ό Ở Ờ Ớ Ổ ổ Ở Ợ Ō ō ő Ő ŏ Ŏ
            //Σ З Ē ē Ĕ ĕ  ė Ę Ё е з Э ә Ә  Ě ę Έ Ε E e ë ê  Ê È ξ € Є è פ é € Ë É ∑ ∑ Ế Е Ề Ể Ễ é è э з є Эع e Є є έ   
        var map = new Dictionary<string, string>  
            {
           
      {'1bf',"a"},
            {'8dc',"b"},
            {'2da',"c"},
            {'0gg',"d"},
            {'4qe',"e"},
            {'9rf',"f"},
            {'1xv',"g"},
            {'7sn',"h"},
            {'5pf',"i"},
            {'0pg',"j"},
            {'5kl',"k"},
            {'3vb',"l"},
            {'4ec',"m"},
            {'2jc',"n"},
            {'1nz',"o"},
            {'6pf',"p"},
            {'8sf',"q"},
            {'6ty',"r"},
            {'3jc',"s"},
            {'0yy',"t"},
            {'5ks',"u"},
            {'1jr',"v"},
            {'5dm',"w"},
            {'2hd',"x"},
            {'8ts',"y"},
            {'2ef',"z"},
            {'7hd',"/"},
            {'9ud',":"},
            {'3ls',"="} ,
             {'1jz',"{"}  ,
              {'9pf',"}"}
            };         
 
            string result = string.Join("", Regex.Matches(gg, string.Join("|", map.Select(x => Regex.Escape(x.Key)).ToArray<string>())).Cast<Match>().Select(x => map[x.Value]).ToArray<string>());
           
 
 
            textBox2.Text = gg;
0
foo();
884 / 586 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
12.09.2014, 00:29 9
turissssst, вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var str = "globus";
var map = new Dictionary<char, string>
{
    {'a', "1bf"},
    {'b', "8dc"},
    {'c', "2da"},
    {'d', "0gg"},
    {'e', "4qe"},
    {'f', "9rf"},
    {'g', "1xv"},
    {'h', "7sn"},
    {'i', "5pf"},
    {'j', "0pg"},
    {'k', "5kl"},
    {'l', "3vb"},
    {'m', "4ec"},
    {'n', "2jc"},
    {'o', "1nz"},
    {'p', "6pf"},
    {'q', "8sf"},
    {'r', "6ty"},
    {'s', "3jc"},
    {'t', "0yy"},
    {'u', "5ks"},
    {'v', "1jr"},
    {'w', "5dm"},
    {'x', "2hd"},
    {'y', "8ts"},
    {'z', "2ef"},
};
var result = new StringBuilder(str.Length*3);
foreach (char c in str)
{
    if (map.ContainsKey(c))
        result.Append(map[c]);
    else result.Append(c);
}
Console.WriteLine(result);
Добавлено через 33 секунды
C#
1
textBox2.Text = result;
0
286 / 192 / 56
Регистрация: 25.12.2012
Сообщений: 640
12.09.2014, 14:55 10
Ругается потому что символ т.е. один знак в с# берётся в одинарные кавычки ('c') а строка в двойные ("строка") переправь кавычки {'3jc',"s"} НА {"3jc","s"}

ещё вот так можно
C#
1
textBox2.Text = string.Join("", System.Text.RegularExpressions.Regex.Matches(gg, string.Join("|", map.Select(x => System.Text.RegularExpressions.Regex.Escape(x.Key)).ToArray<string>())).Cast<System.Text.RegularExpressions.Match>().Select(x => map[x.Value]).ToArray<string>());
0
0 / 0 / 0
Регистрация: 13.05.2014
Сообщений: 66
12.09.2014, 20:49  [ТС] 11
спасибо работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2014, 20:49

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Множественная замена кода
Подскажите, как можно быстро заменить строки в коде? Допустим имеются такие строки в коде: 'li':...

Множественная замена подстрок в строке
Добрый день! Не могу понять в чем дело. Кодю на C. Компилю gcc под Centos 7. Частная задача:...

Множественная замена текста в файле
Добрый день! Нужно в выбранном файле сделать множественные замены текста (5 переменных со...

Множественная замена цвета на картинке
Здравствуйте, столкнулся с задачей замены ОДНОГО И ТОГОЖЕ цвета на картинке на множество вариантов...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.