В общем, есть 2 строки, формат которых нужно проанализировать на похожесть.
Я хотел параллельно идти по 2-ум строкам и сравнивать принадлежность символа к конкретному типу (цифра, буква и т д).
Есть статические методы char, но они неудобны. Хотелось бы иметь чего-то, что возвращает перечисление.
Есть ли в .NET что-либо готовое или нужно пилить собственное решение, которое будет оборачивать статические методы char и возвращать перечисление?
Такое перечисление уже есть: это UnicodeCategory
. Вы можете классифицировать символ при помощи CharUnicodeInfo.GetUnicodeCategory
.
Например, вот такой код:
string s = "Это 2048, юбилейный выпуск!";
foreach (var c in s)
Console.WriteLine($"Символ: {c}, категория: {CharUnicodeInfo.GetUnicodeCategory(c)}");
на моей машине выдаёт:
Символ: Э, категория: UppercaseLetter
Символ: т, категория: LowercaseLetter
Символ: о, категория: LowercaseLetter
Символ: , категория: SpaceSeparator
Символ: 2, категория: DecimalDigitNumber
Символ: 0, категория: DecimalDigitNumber
Символ: 4, категория: DecimalDigitNumber
Символ: 8, категория: DecimalDigitNumber
Символ: ,, категория: OtherPunctuation
Символ: , категория: SpaceSeparator
Символ: ю, категория: LowercaseLetter
Символ: б, категория: LowercaseLetter
Символ: и, категория: LowercaseLetter
Символ: л, категория: LowercaseLetter
Символ: е, категория: LowercaseLetter
Символ: й, категория: LowercaseLetter
Символ: н, категория: LowercaseLetter
Символ: ы, категория: LowercaseLetter
Символ: й, категория: LowercaseLetter
Символ: , категория: SpaceSeparator
Символ: в, категория: LowercaseLetter
Символ: ы, категория: LowercaseLetter
Символ: п, категория: LowercaseLetter
Символ: у, категория: LowercaseLetter
Символ: с, категория: LowercaseLetter
Символ: к, категория: LowercaseLetter
Символ: !, категория: OtherPunctuation
Стандарт Unicode, на котором основывается классификация, меняется со временем, так что и результаты, возвращаемые функцией, могут измениться с установкой какого-нибудь сервис-пака. Впрочем, к часто используемым символам это предупреждение не относится: их классификация меняться будет вряд ли.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Недавно сталкнулся с задачей, в одном элементе которой требовалось преобразование