unicodeの文字数を数える

追記:JavaでのUnicode補助文字 - YHR’s notes も参照。
下記の件、codePoint系のメソッドを使えばうまくいきそうです。

以下、古い記事

javaの内部文字処理は、(たぶん)java-modified-UTF-8です。
たとえば、日本語の文字数が数えたかったとして、String.getLength()だとバイト数が帰ってきます。
しょうがないので、java.text.StringCharacterIteratorを使ってぐるぐる回して数えてみたけど、ファイルから読み込んだものがうまくカウントできない。
妙なところでカウントしているようなので、Character.isLetter()ではじいみてると、日本語についてはいちおううまくいったようです。

なんか微妙。


と思ったら、どうやら一度ソースをエディタで保存しなおしたのがまずかったらしい。Hでまるエディタの文字コードがおかしいのか、Javaがおかしいのかは不明。