java中的可打印字符

Osc*_*Ryz 33 java unicode non-printing-characters

有谁知道如何检测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;
    }
Run Code Online (Sandbox Code Playgroud)

我通过KeyListener获取输入,然后Ctr-'key'打印出一个正方形.有了这个功能似乎还不够.

我在这里错过了一些炭火吗?

Osc*_*Ryz 42

这似乎是"字体"独立的方式.

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;
}
Run Code Online (Sandbox Code Playgroud)


jb.*_*jb. 15

我不完全确定我是否理解你的问题.但是如果你想检测是否可以将字符绘制到Graphics对象,如果没有打印一些占位符char,你可能会觉得有用:

Font.canDisplay(int)
Run Code Online (Sandbox Code Playgroud)

它将检查字体是否可以显示特定的代码点(更多的是检查字体是否可显示 - 因为有可显示的字符 - 比如 - 但是某些字体无法显示它们.