печатный символ в Java
-
03-07-2019 - |
Вопрос
Кто-нибудь знает, как обнаружить печатные символы в 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 ', печатая квадрат. С этой функцией кажется достаточно честно. Р>
Мне не хватает какого-то символа здесь?
Решение
Похоже, это был "шрифт" независимый путь.
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;
}
Другие советы
Я не совсем уверен, понимаю ли я вашу проблему. Но если вы хотите определить, можно ли нарисовать символ в графическом объекте, и если нет, вывести какой-либо символ-заполнитель, вы можете найти его полезным:
Font.canDisplay(int)
Он проверит, может ли шрифт отображать определенную кодовую точку (более того, он проверяет, отображается ли вообще шрифт, поскольку существуют отображаемые символы - например, & # 261; - но некоторые шрифты не могут их отображать.