Неполадка с заменой букв (оператор ".Replace") - C#
Формулировка задачи:
Всем привет!
У меня есть свой алфавит (не спрашивайте, зачем мне это нужно) и мне нужно сделать переводчик с русского языка на придуманный. Но этот переводчик не должен просто слова заменять, а буквы. Например, в русском алфавите 33 буквы (от А до Я), у меня тоже 33. Мне нужно, чтобы когда я писал слово, переводчик в этом слове как-бы заменял все буквы русского алфавита всеми буквами моего (например если с русского на английский перевести "АБВГД", то получится "ABCDE" и так далее и тому подобное). Я надеюсь, что Вы уяснили суть, и я понятно объяснил смысл.
Моя проблема заключается в том, что буквы заменяются несколько раз. Например, первые четыре буквы русского алфавита выглядят так: А, Б, В, Г, а первые четыре буквы моего алфавита выглядят так: И, Г, О, Т. Соответственно, если переводить слово "Абвг" на мой язык, то должно получиться "Игот", но получается "Итот". Это происходит, потому что сначала букве "А" присваивается значение "И", букве "б" - "г", букве "в" - "о", а букве "г", как казалось бы должно присвоиться значение "т". Так оно и происходит. Но дело в том, что до этого букве "б" уже было присвоено значение "г" и происходит повторное присвоение этой же буквы: "г" -> "т". Поэтому и получается не "Игот", а "Итот".
Мне необходимо сделать так, чтобы те буквы, которые уже были заменены, больше не меняли своё значение. Заранее спасибо.
Мой код:
Листинг программы
- static void Main(string[] args)
- {
- Console.Write("Введите слово, которое хотите перевести на язык: ");
- string Word = Convert.ToString(Console.ReadLine());
- Word = Word.Replace("А", "И").Replace("б", "г").Replace("в", "о").Replace("г", "т");
- Console.WriteLine("Перевод: " + Word);
- Console.ReadKey();
- }
Решение задачи: «Неполадка с заменой букв (оператор ".Replace")»
textual
Листинг программы
- var dic = new char[255];
- dic[(byte)'a'] = 'и';
- dic[(byte)'b'] = 'г';
- dic[(byte)'c'] = 'о';
- dic[(byte)'d'] = 'т';
- //var result = new string("abcd".Select(x => dic[(byte)x]).ToArray());
- var builder = new StringBuilder("abcd".Length);
- foreach (var ch in "abcd")
- {
- builder.Append(dic[(byte)ch]);
- }
- var result = builder.ToString();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д