При нажатии клавиши в английской раскладке, выводить русское значение клавиши - C#
Формулировка задачи:
Требуется чтобы при нажатии клавиши в английской раскладке, выводилось Русское значение клавиши. Например q это й. По возможности с учетом регистра.
Решение задачи: «При нажатии клавиши в английской раскладке, выводить русское значение клавиши»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Text;
- using System.Collections;
- using System.Globalization;
- internal sealed class Program {
- static void Main() {
- Int32 n = 0;
- String s;
- StringBuilder sb = new StringBuilder();
- Hashtable ht = new Hashtable();
- Char[] ru = "ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ".ToCharArray();
- Enumerable
- .Range(65, 26)
- .Select(i => (Char)i)
- .ToList()
- .ForEach(i => {
- ht.Add(i, ru[n]);
- n++;
- });
- ht.Add('<', 'Б');
- ht.Add(',', 'б');
- ht.Add(':', 'Ж');
- ht.Add(';', 'ж');
- ht.Add('"', 'Э');
- ht.Add('\'', 'э');
- ht.Add('>', 'Ю');
- ht.Add('.', 'ю');
- Console.Write("Введите слово (например, \"ktrnhbr): ");
- s = Console.ReadLine();
- if (String.IsNullOrEmpty(s)) return;
- s.ToCharArray().ToList().ForEach(i => {
- Char c = Char.IsLower(i) ? Char.ToUpper(i, CultureInfo.InvariantCulture) : i;
- sb.Append(Char.IsLower(i) ? Char.ToLower((Char)ht[c], CultureInfo.InvariantCulture) : ht[c]);
- });
- Console.WriteLine(sb.ToString());
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д