Замена русских символов на английские - C#

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

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

Как сделать так чтобы при записи в файл русские символы заменяются на английские и наоборот?

Решение задачи: «Замена русских символов на английские»

textual
Листинг программы
using System;
using System.Collections.Generic;
 
namespace Task_cyberforum_6
{
    class Program
    {
        static void Main(string[] args)
        {
            Translit translit = new Translit();
            // входная строка
            string testIn = "вот_такой_чудной_объект.jpg";
            // строка на выходе после транслитерации
            string testOut = translit.TranslitFileName(testIn);
            Console.WriteLine("Исходная строка \'{0}\'",testIn);
            Console.WriteLine("Cтрока после транслитерации \'{0}\'", testOut);
            Console.ReadLine();
        }
 
        public class Translit
        {
            // объявляем и заполняем словарь с заменами
            // при желании можно исправить словать или дополнить
            Dictionary<string, string> dictionaryChar = new Dictionary<string, string>()
            {
                {"а","a"},
                {"б","b"},
                {"в","v"},
                {"г","g"},
                {"д","d"},
                {"е","e"},
                {"ё","yo"},
                {"ж","zh"},
                {"з","z"},
                {"и","i"},
                {"й","y"},
                {"к","k"},
                {"л","l"},
                {"м","m"},
                {"н","n"},
                {"о","o"},
                {"п","p"},
                {"р","r"},
                {"с","s"},
                {"т","t"},
                {"у","u"},
                {"ф","f"},
                {"х","h"},
                {"ц","ts"},
                {"ч","ch"},
                {"ш","sh"},
                {"щ","sch"},
                {"ъ","'"},
                {"ы","yi"},
                {"ь",""},
                {"э","e"},
                {"ю","yu"},
                {"я","ya"}
            };
            /// <summary>
            /// метод делает транслит на латиницу
            /// </summary>
            /// <param name="source"> это входная строка для транслитерации </param>
            /// <returns>получаем строку после транслитерации</returns>
            public string TranslitFileName(string source)
            {
                var result = "";
                // проход по строке для поиска символов подлежащих замене которые находятся в словаре dictionaryChar
                foreach (var ch in source)
                {
                    var ss = "";
                    // берём каждый символ строки и проверяем его на нахождение его в словаре для замены,
                    // если в словаре есть ключ с таким значением то получаем true 
                    // и добавляем значение из словаря соответствующее ключу
                    if (dictionaryChar.TryGetValue(ch.ToString(), out ss))
                    {
                        result += ss;
                    }
                    // иначе добавляем тот же символ
                    else result += ch;
                }
                return result;
            }
        }
    }
}

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


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

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

11   голосов , оценка 4.545 из 5
Похожие ответы