Локализация текстового фильтра - PullRequest
0 голосов
/ 07 января 2010

если я создаю текстовый фильтр следующим образом

class AlphaTextFilter extends TextFilter {

    public char convert(char c, int status) {
        if (!validate(c))
                return 0;
        return c;
    }

    public boolean validate(char c) {
        return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
    }
}

сработает ли, если код запускается на устройстве с языком, отличным от английского ...? как я могу сделать локализованный ....?

Ответы [ 3 ]

2 голосов
/ 07 января 2010

Как насчет использования чего-то вроде CharacterUtilities.isLetter () , чтобы проверить, является ли это буквой?

0 голосов
/ 07 января 2010

Это зависит от того, каково ваше определение «работы». Если под «работой» вы подразумеваете, принимает только [a-zA-Z], то да.

Если вы имеете в виду, будет ли это соответствовать ожиданиям международных пользователей, которые ожидают использовать буквенные, слоговые или идеографические символы (или «буквы» в более общем использовании), то нет. Большинство платформ теперь предлагают некоторый механизм для идентификации класса символов Unicode, и большинство новых движков регулярных выражений поддерживают сопоставление на основе классов символов Unicode. В вашем случае \ p {letter} будет наиболее подходящим классом символов.

0 голосов
/ 07 января 2010

Да, я верю в это.

A char - это char независимо от того, в какой локали вы находитесь. В любом случае, все Unicode, поэтому не должно быть никаких проблем с локализацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...