プロが教える店舗&オフィスのセキュリティ対策術

Javaのバージョンは1.5です。

Comparatorクラスをimplementsしたクラスを使用して
ソートを行おうとしています。

compareメソッドは二つの引数を比較した結果を返してくれますが、
日本語を比較した場合に何をもって大小を比較するのでしょうか?

日本語の入った項目(総務、経理、開発、人事等が入っています)をキーに
ソートさせた場合の結果がよくわからないソートになりました。
日本語の音読みにソートさせたいのですが…。

A 回答 (1件)

「Comparatorインターフェイスを implements したクラス」を使ってソートするなら, 「日本語を比較した場合に何をもって大小を比較するのか」はそのクラス (の compare メソッド) を作った人に聞く必要があるでしょうね. 何も考えずに文字列同士を比較すれば文字コードによる辞書順の前後関係で決まりますが, それではダメで「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ.



あと, 「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね. 同じ漢字でも違う音になることがありますから.
    • good
    • 0
この回答へのお礼

>「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ。
調べてみると専用の比較をしているメソッドがいろいろ公開されていますね。

>「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね。
データベースには音読み用のカラムを追加することができず、
結局S-JISの文字コード順でということになりました。

ご回答ありがとうございました。

お礼日時:2010/11/28 21:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!