Codeby web-security - новый курс от Codeby Security School

Представляем вашему вниманию новый курс от команды The Codeby - "Тестирование Веб-Приложений на проникновение с нуля". Общая теория, подготовка рабочего окружения, пассивный фазинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...


Как найти гласные буквы в тексте?

Сегодня хочу показать довольно простой способ, с помощью которого можно найти гласные буквы в слове, строке, предложении или каком-нибудь другом фрагменте текста.

И так, представим, что у нас есть строка, которая содержит, к примеру, следующий текст: сегодня 8 апреля 2014 года.

И в качестве задачи нам нужно найти все гласные буквы в приведенной строке.

В языке c# любая строка – это набор символов. Поэтому данную нам строку мы можем представить себе следующим образом:

char [] str = {'с', 'о', 'л', 'н', ... );

Чтобы теперь найти гласные буквы нам нужно всего лишь сравнить каждый элемент данного массива с уже существующим списком гласных букв русского алфавита. Благо таких букв всего десять, поэтому мы можем вручную создать, например список или массив и поместить в него все эти буквы.

string str = "сегодня 8 апреля 2014 года";
List<char> vowelsLellers = new List<char> {'а','е','ё','и','о',
'у','ы','э','ю','я'};
//список найденных букв
List<char> foundLellers = new List<char>();
foreach(char ch in str)
{
if (Char.IsLetter(ch))
{
if (vowelLeller.Contains(ch))
{
foundLeller.Add(ch);
}
}
}

Сначала с помощью метода IsLetter проверяем, является ли текущий символ &#8212; буквой. После чего с помощью метода Contains определяем, содержится ли данный символ в списке гласных букв.


Paranoid - курс от Codeby Security School

Представляем вашему вниманию курс от команды codeby - "Комплекс мер по защите персональных данных, анонимности в интернете и не только" Подробнее ...


В данной проверке не учитывается различие в регистре букв. Например, если сейчас в слове апрель сделать первую букву заглавной, то метод Contains посчитает, что данного символа нет среди гласных букв. Поэтому если Вам требуется учитывать оба регистра, то тогда необходимо воспользоваться методом ToLowerInvariant, например:

foreach(char ch in str.ToLowerInvariant())

Так же вместо цикла Вы можете воспользоваться лямбда выражением, например:

foundLellers = str.Where(x => Char.IsLetter(x) &
vowelsLellers.Contains(x)).ToList();

результат

Windows Console

Читайте также:


Codeby Market от Сodeby

Мы запустили свой магазин CodebyMarket Equipment for InfoSec. Уже добавили RaspberryAlfa Long-RangeOrange PiArduino и многое другое. Купить Pentesting Devices