При нажатии клавиши в английской раскладке, выводить русское значение клавиши - 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());
  }
}

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


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

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

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