可打印的字符在 java

2022-09-01 05:59:36

有谁知道如何在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'打印了一个正方形。使用此功能似乎相当足够。

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


答案 1

看来这是“字体”独立的方式。

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

答案 2

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

Font.canDisplay(int)

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


推荐