2010年02月08日

JavaのUnicodeBlockを使ってみる

UnicodeBlockを使うと平仮名やカタカナの判定ができる。うまく使えば指定サイトが何語で書かれているか判定したりできる。

各ブロックの説明や、漢字を判定するにはどのブロックを使えばだいたい網羅出来るかなど、細かい話は現在確認中。(漢字はブロックが複数あるんで面倒です)

とりあえずJavaのUnicodeBlockのサンプルコード。



// 平仮名判定(UnicodeBlock.HIRAGAN)
System.out.println( UnicodeBlock.of( 'あ' ) == UnicodeBlock.HIRAGANA );
// => true
System.out.println( UnicodeBlock.of( 'ア' ) == UnicodeBlock.HIRAGANA );
// => false

// カタカナ判定(UnicodeBlock.KATAKANA)
System.out.println( UnicodeBlock.of( 'ア' ) == UnicodeBlock.KATAKANA );
// => true
System.out.println( UnicodeBlock.of( 'あ' ) == UnicodeBlock.KATAKANA );
// => false

// 漢字判定(UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS)
System.out.println( UnicodeBlock.of( '言' ) == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS );
// => true
System.out.println( UnicodeBlock.of( 'ω' ) == UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS );
// => false


// 正規表現もある

//平仮名4つ
System.out.println( "ひらがな".matches( "\\p{InHiragana}{4}" ) );
// => true

// カタカナ4つ
System.out.println( "カタカナ".matches( "\\p{InKatakana}{4}" ) );
// => true

// 漢字2つ
System.out.println( "漢字".matches( "\\p{InCjkUnifiedIdeographs}{2}" ) );
// => true




追記

もう少し調べてみた
http://www.mwsoft.jp/programming/munou/unicode_block_java.html