В стандартной библиотеке появился канонический способ сравнения строк без учёта регистра
08.06.2026Появились операции полного приведения регистра, а не только приведения к верхнему или нижнему. Это то, что для сравнения строк без учёта регистра считается правильным во всех языках.
Почему верхнего и нижнего не хватает
Сравнение без учёта регистра через приведение к верхнему регистру неверно в некоторых письменностях. Немецкая буква «эс-цет» приводится к верхнему регистру в два символа, поэтому слова, которые человек считает одинаковыми, окажутся разными.
Полное приведение регитра отображает такие пары в один символ. Это и есть канонический способ: сравнить два значения, приведённые одинаково, значит сравнить их без учёта регистра.
Что добавлено
- получение представления символа без учёта регистра — возможно, состоящее из нескольких символов;
- получение представления строки;
- прямое сравнение строк без учёта регистра.
Чего метод не делает
Приведение нормализации не выполняется. Это значит, что визуально одинаковые строки, записанные разными последовательностями символов, могут сравниться как разные. Нормализация и сравнение регистра — разные задачи, и совмещать их в одном методе было бы ошибкой: применять нормализацию молча нельзя, она меняет длину строки.
Оригинал
add APIs for case folding to the standard library
Упоминаний: 1 · Просмотров: 4