Преобразование строки в нижний регистр

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

Подробнее

Исторически потребность в преобразовании строк в нижний регистр возникла из-за компьютерных систем, начавших работать с командами, нечувствительными к регистру. Сейчас мы по-прежнему делаем это по трём основным причинам:

  1. Единообразие: При обработке входных данных, особенно данных, созданных пользователями, преобразование в нижний регистр обеспечивает стандартизированный формат.
  2. Операции без учета регистра: Это включает в себя поиск, сортировку и сравнение строк, где “Apple” должно быть эквивалентно “apple”.
  3. Локализация: Языки имеют разные правила для регистра. ToLowerInvariant() решает эту задачу, обеспечивая культурно-независимое преобразование, превращая символы в нижний регистр на основе инвариантной культуры (аналогично английскому) и избегая неожиданных результатов.

Альтернативы методам .ToLower() и .ToLowerInvariant() включают использование регулярных выражений для замен или ручной итерации по строке для сценариев настраиваемого преобразования.

С точки зрения реализации, эти методы не модифицируют исходную строку; строки в .NET являются неизменяемыми. Они создают и возвращают новую строку, которая является версией исходной строки в нижнем регистре.

Смотрите также

  • Класс String в документации C#: Microsoft Docs
  • Перечисление StringComparison и сравнения, не зависящие от культуры: Microsoft Docs