Неполадка с заменой букв (оператор ".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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д