web-dev-qa-db-ja.com

印刷可能な文字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を介して入力を取得し、Ctr-'key 'が正方形を出力します。この機能で十分なようです。

ここにいくつかの文字がありませんか?

34
OscarRyz

これは「フォント」に依存しない方法だったようです。

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

私はあなたの問題を理解しているかどうか完全にはわかりません。ただし、文字をGraphicsオブジェクトに描画できるかどうかを検出したい場合、およびプレースホルダー文字を出力できない場合は、次のようになります。

Font.canDisplay(int)

フォントが特定のコードポイントを表示できるかどうかをチェックします(ąのように表示可能な文字があるため、フォントがまったく表示可能かどうかをチェックするだけですが、一部のフォントはそれらを表示できません。

15
jb.