有谁知道如何检测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'打印了一个正方形。有了这个功能似乎还不够。
我在这里错过了一些炭火吗?
答案 0 :(得分:39)
这似乎是“字体”独立的方式。
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;
}
答案 1 :(得分:14)
我不完全确定我是否理解你的问题。但是如果你想检测是否可以将字符绘制到Graphics对象,如果没有打印一些占位符char,你可能会觉得有用:
Font.canDisplay(int)
它将检查字体是否可以显示特定的代码点(更多的是检查字体是否可以显示 - 因为有可显示的字符 - 比如 - 但是某些字体无法显示它们。