Справочник по C#

    Исходники по языку программирования CSharp

    Разбор строки на разные категории символов: Справочник по C#

    /
    /
    /
    81 Views



          В данном примере рассмотрен циклический перебор всех символов введенной строки в текстовый элемент управления и распределение каждого символа в отдельный список, в зависимости от типа.
    Распределение будет осуществляться по следующим категориям:

    • Только буквы;
    • Заглавные буквы;
    • Строчные буквы;
    • Цифры;
    • Остальные символы.

          Создайте проект Windows Form в Microsoft Visual Studio и добавьте на главную форму проекта, шесть текстовых элементов управления- TextBox. Данные в данных элементах будут распределяться по следующим критериям:

    • textBox1 – Поле для ввода обрабатываемого текста;
    • textBox2 – Только буквы;
    • textBox3 – Заглавные буквы;
    • textBox4 – Строчные буквы;
    • textBox5 – Цифры;
    • textBox6 – Остальные символы.

    У вас получится приведенный ниже пример:

          Сделайте клик правой клавишей по первому элементу управления и выберете из появившегося контекстного меню, пункт «Свойства». В открывшемся окне свойств, перейдите в события данного элемента (знак молнии в верхней части окна свойств). Найдите событие «TextChanged» и сделайте по нему двойной клик левой клавишей мыши. Данное событие происходит каждый раз при изменении значения свойства «Text», т.е. при каждом вводе нового символа, удалении или вставке.

          После выполнения описанных выше действий, вы перейдете в автоматически созданный метод «textBox1_TextChanged», листинга главной формы.

    Вставьте приведенный ниже листинг в тело созданного метода.

    //Объявляем новую переменную, которая
    //будет содержать текущий проверяемый символ.
    char currentChar = '';
    
    //Инициализируем новые строго типизированные
    //списки объектов, для каждой категории символов.
    List<char> arrayB = new List<char>(); // - Только буквы.
    List<char> arrayU = new List<char>(); // - Заглавные буквы.
    List<char> arrayL = new List<char>(); // - Строчные буквы.
    List<char> arrayN = new List<char>(); // - Цифры.
    List<char> arrayS = new List<char>(); // - Остальные символы.
    
    //Очищаем все тестовые элементы управления.
    textBox2.Text = string.Empty; // - Только буквы.
    textBox3.Text = string.Empty; // - Заглавные буквы.
    textBox4.Text = string.Empty; // - Строчные буквы.
    textBox5.Text = string.Empty; // - Цифры.
    textBox6.Text = string.Empty; // - Остальные символы.
    
    //Выполняем циклический перебор, всех символов введенной строки
    //и в зависимости от типа добавим их каждый с свой список.
    for (int intI = 0; intI < textBox1.Text.Length; intI++)
    {
    //Вычисляем текущий символ в введенной строке.
    currentChar = Convert.ToChar(textBox1.Text.Substring(intI, 1));
    
    //Определяем, относится ли указанный
    //символ Юникода к категории букв алфавита.
    if (char.IsLetter(currentChar))
    {
    //Символ является буквой.
    arrayB.Add(currentChar);
    
    //Определяем, относится ли указанный
    //символ Юникода к категории букв верхнего
    //регистра.
    if (char.IsUpper(currentChar))
    {
    //Символ является буквой верхнего
    //регистра.
    arrayU.Add(currentChar);
    }
    else
    {
    //Символ является буквой нижнего
    //регистра.
    arrayL.Add(currentChar);
    }
    
    }
    //Определяем, относится ли указанный символ
    //Юникода к категории цифр.
    else if (char.IsNumber(currentChar))
    {
    //Символ является цифрой.
    arrayN.Add(currentChar);
    
    }
    else
    {
    //Символ является другим знаком.
    arrayS.Add(currentChar);
    }
    }
    
    //Выводим в каждый текстовый элемент управления
    //символы Юникода определенной категории.
    textBox2.Text = new string(arrayB.ToArray()); // - Только буквы.
    textBox3.Text = new string(arrayU.ToArray()); // - Заглавные буквы.
    textBox4.Text = new string(arrayL.ToArray()); // - Строчные буквы.
    textBox5.Text = new string(arrayN.ToArray()); // - Цифры.
    textBox6.Text = new string(arrayS.ToArray()); // - Остальные символы.

          Запустите проект, нажав на клавиатуре, клавишу «F5». Введите в первое тестовое поле текст, содержащий различные символы клавиатуры. Результат выполнения тестового примера, представлен ниже.

    Ссылка для скачивания примера: Яндекс.Диск

    Разбор строки на разные категории символов: Справочник по C#

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9