В стандартной библиотеке появился канонический способ сравнения строк без учёта регистра

08.06.2026

Появились операции полного приведения регистра, а не только приведения к верхнему или нижнему. Это то, что для сравнения строк без учёта регистра считается правильным во всех языках.

Почему верхнего и нижнего не хватает

Сравнение без учёта регистра через приведение к верхнему регистру неверно в некоторых письменностях. Немецкая буква «эс-цет» приводится к верхнему регистру в два символа, поэтому слова, которые человек считает одинаковыми, окажутся разными.

Полное приведение регитра отображает такие пары в один символ. Это и есть канонический способ: сравнить два значения, приведённые одинаково, значит сравнить их без учёта регистра.

Что добавлено

  • получение представления символа без учёта регистра — возможно, состоящее из нескольких символов;
  • получение представления строки;
  • прямое сравнение строк без учёта регистра.

Чего метод не делает

Приведение нормализации не выполняется. Это значит, что визуально одинаковые строки, записанные разными последовательностями символов, могут сравниться как разные. Нормализация и сравнение регистра — разные задачи, и совмещать их в одном методе было бы ошибкой: применять нормализацию молча нельзя, она меняет длину строки.

Оригинал

add APIs for case folding to the standard library

Упоминаний: 1 · Просмотров: 4