有谁知道如何检测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;
}

其他提示

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

Font.canDisplay(int)

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top