Неполадка с заменой букв (оператор ".Replace") - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет! У меня есть свой алфавит (не спрашивайте, зачем мне это нужно) и мне нужно сделать переводчик с русского языка на придуманный. Но этот переводчик не должен просто слова заменять, а буквы. Например, в русском алфавите 33 буквы (от А до Я), у меня тоже 33. Мне нужно, чтобы когда я писал слово, переводчик в этом слове как-бы заменял все буквы русского алфавита всеми буквами моего (например если с русского на английский перевести "АБВГД", то получится "ABCDE" и так далее и тому подобное). Я надеюсь, что Вы уяснили суть, и я понятно объяснил смысл. Моя проблема заключается в том, что буквы заменяются несколько раз. Например, первые четыре буквы русского алфавита выглядят так: А, Б, В, Г, а первые четыре буквы моего алфавита выглядят так: И, Г, О, Т. Соответственно, если переводить слово "Абвг" на мой язык, то должно получиться "Игот", но получается "Итот". Это происходит, потому что сначала букве "А" присваивается значение "И", букве "б" - "г", букве "в" - "о", а букве "г", как казалось бы должно присвоиться значение "т". Так оно и происходит. Но дело в том, что до этого букве "б" уже было присвоено значение "г" и происходит повторное присвоение этой же буквы: "г" -> "т". Поэтому и получается не "Игот", а "Итот". Мне необходимо сделать так, чтобы те буквы, которые уже были заменены, больше не меняли своё значение. Заранее спасибо. Мой код:
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. Console.Write("Введите слово, которое хотите перевести на язык: ");
  4. string Word = Convert.ToString(Console.ReadLine());
  5. Word = Word.Replace("А", "И").Replace("б", "г").Replace("в", "о").Replace("г", "т");
  6. Console.WriteLine("Перевод: " + Word);
  7. Console.ReadKey();
  8. }

Решение задачи: «Неполадка с заменой букв (оператор ".Replace")»

textual
Листинг программы
  1. var dic = new char[255];
  2.             dic[(byte)'a'] = 'и';
  3.             dic[(byte)'b'] = 'г';
  4.             dic[(byte)'c'] = 'о';
  5.             dic[(byte)'d'] = 'т';
  6.  
  7.             //var result = new string("abcd".Select(x => dic[(byte)x]).ToArray());
  8.  
  9.             var builder = new StringBuilder("abcd".Length);
  10.             foreach (var ch in "abcd")
  11.             {
  12.                 builder.Append(dic[(byte)ch]);
  13.             }
  14.  
  15.             var result = builder.ToString();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.444 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы