C#:
Преобразование строки в нижний регистр
Как:
В C# вы можете преобразовать строку в нижний регистр, используя методы ToLower()
или ToLowerInvariant()
. Вот как:
string originalText = "Hello, World!";
string lowerCaseText = originalText.ToLower();
Console.WriteLine(lowerCaseText); // Выводит: hello, world!
И для культурно-инвариантных преобразований:
string mixedCaseText = "İstanbul";
string lowerInvariantText = mixedCaseText.ToLowerInvariant();
Console.WriteLine(lowerInvariantText); // Выводит: i̇stanbul
Примеры вывода:
hello, world!
i̇stanbul
Подробнее
Исторически потребность в преобразовании строк в нижний регистр возникла из-за компьютерных систем, начавших работать с командами, нечувствительными к регистру. Сейчас мы по-прежнему делаем это по трём основным причинам:
- Единообразие: При обработке входных данных, особенно данных, созданных пользователями, преобразование в нижний регистр обеспечивает стандартизированный формат.
- Операции без учета регистра: Это включает в себя поиск, сортировку и сравнение строк, где “Apple” должно быть эквивалентно “apple”.
- Локализация: Языки имеют разные правила для регистра.
ToLowerInvariant()
решает эту задачу, обеспечивая культурно-независимое преобразование, превращая символы в нижний регистр на основе инвариантной культуры (аналогично английскому) и избегая неожиданных результатов.
Альтернативы методам .ToLower()
и .ToLowerInvariant()
включают использование регулярных выражений для замен или ручной итерации по строке для сценариев настраиваемого преобразования.
С точки зрения реализации, эти методы не модифицируют исходную строку; строки в .NET являются неизменяемыми. Они создают и возвращают новую строку, которая является версией исходной строки в нижнем регистре.
Смотрите также
- Класс String в документации C#: Microsoft Docs
- Перечисление StringComparison и сравнения, не зависящие от культуры: Microsoft Docs