Подтвердить что ты не робот

Для печати char в java

Кто-нибудь знает, как обнаружить печатные символы в java?

Через некоторое время (пробная версия/ошибка) я получаю этот метод:

    public boolean isPrintableChar( char c ) {
        Character.UnicodeBlock block = Character.UnicodeBlock.of( c );
        return (!Character.isISOControl(c)) &&
                c != KeyEvent.CHAR_UNDEFINED &&
                block != null &&
                block != Character.UnicodeBlock.SPECIALS;
    }

Я получаю вход через KeyListener и присылаю Ctr-'key 'напечатал квадрат. С этой функцией кажется достаточно достаточно.

Я пропустил здесь char?

Спасибо заранее.

4b9b3361

Ответ 1

Кажется, это был независимый способ "Шрифт".

public boolean isPrintableChar( char c ) {
    Character.UnicodeBlock block = Character.UnicodeBlock.of( c );
    return (!Character.isISOControl(c)) &&
            c != KeyEvent.CHAR_UNDEFINED &&
            block != null &&
            block != Character.UnicodeBlock.SPECIALS;
}

Ответ 2

Я не совсем уверен, понимаю ли я вашу проблему. Но если вы хотите определить, может ли символ быть привлечен к объекту Graphics, и если не печатать какой-либо заполнитель char, вы можете найти полезный файл:

Font.canDisplay(int)

Он будет проверять, может ли шрифт отображать конкретный код (это больше, если проверить, является ли шрифт вообще отображаемым), поскольку есть отображаемые символы - например ±, но некоторые шрифты не могут отображать их.