@ Альберт, Вы, кажется, слишком озабочены мелочами преобразования дел, когда вы еще не разобрались (и не объяснили ответчикам), что вы действительно хотите сделать.
=== Вашпредыдущая попытка объяснения (в комментарии к моему ответу на этот вопрос ) ===
@ Джон: Ну, на самом деле я делаю API для своего веб-сервиса.Мой веб-сервис принимает ключ, который отображается на конкретную запись в моей базе данных.Ключ чувствителен к регистру, и ключ может состоять из любого символа Unicode.Поэтому, чтобы нормализовать весь ввод, я преобразую все ключевые запросы в строчные (если они имеют прописные эквиваленты).Следствием этого является то, что когда я создаю ключи записи (которые могут настраивать мои пользователи), Я не могу принять любой символ в верхнем регистре, который может быть преобразован в эквивалент в нижнем регистре с помощью функции toLower ().Поэтому я пытаюсь сделать фильтр для этого.Любые предложения?
=== и мой ответный комментарий ===
@ Альберт: Если ваши ключи чувствительны к регистру, почему вы их нормализуете ???"ключи записи, которые пользователи могут настраивать" означает что ???"любой символ Unicode" против "не может принимать символы верхнего регистра" ??? Чтобы ответить на ваш вопрос буквально: похоже, вы не можете принять символ c, когда c.lower ()! = C, что означает, что вы не можете принять любой ключ, если key.lower ()! = Key. Я думаю, что вы должны начать НОВЫЙ ВОПРОС, объясняя точно, что вы пытаетесь сделать, с примерами.
... и вы, конечно, задали новый вопрос (фактически 2 из них), но выничего не объяснилЭтот «новый» вопрос настолько нов, что ответ @Alex Martelli, по сути, такой же, как и мой комментарий, выделенный выше.
Я думаю, что вы должны начать НОВЫЙ ВОПРОС, с новым содержанием , объясняяименно то, что вы пытаетесь сделать, с примерами.