在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获得input,并且打印出一个正方形的Ctr-'key'。 有了这个function似乎够用了。

我在这里错过了一些字符?

先谢谢你。

这似乎是“字体”独立的方式。

 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; } 

我不太清楚我是否理解你的问题。 但是如果你想检测字符是否可以绘制到Graphics对象,并且如果不打印一些占位符字符,你可能会发现有用:

 Font.canDisplay(int) 

它将检查字体是否可以显示特定的代码点(更重要的是检查字体是否可以显示 – 因为有字符是可显示的 – 比如 – 但是有些字体不能显示它们。