• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaのソートについて。)

Javaのソートについて

このQ&Aのポイント
  • Javaのソート方法を教えてください
  • csvファイルの中身を名前の50音順に並べ替えたいです
  • ファイルの内容を変更した後、再度50音順に並べる方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  50音順とのことですが、そもそも名前の読みのデータはあるんですか?  ないと無理ですよね。

momonyoki
質問者

お礼

中に入ってるのは 例えば 開発 太郎、東京、000-000-000、xxxx@xxx.ne.jp、ログインID,表示非表示設定(yes&no) です。 これだと無理ですか・・・

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

「名前の五十音順」に並べるためには読みが必須です. 言い換えると, (#1 のお礼にあるように) 名前の表記のみでは不可能ということでもあります. たとえば「東海林」という姓で「しょうじ」と読む人と「とうかいりん」と読む人がいるのですが (ひょっとしたら「とうかいばやし」もいる?), 「東海林」だけで区別できますか?

momonyoki
質問者

お礼

登録のときに読みを入力させることで解決したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.3

http://www.javaroad.jp/bbs/answer.jsp?q_id=20110510165000905 こちらは参考になりませんか。

momonyoki
質問者

お礼

そちらと同じ質問者です URLありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.2

 #1です。  「開発 太郎」をどう読むかという情報がないと、50音順にするのは、無理だと思います。  漢字のままソートすると、漢字の文字コード順になっちゃいます。

momonyoki
質問者

お礼

わかりました 新規登録時に読みを入力させる形をとってみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • csvファイルの読込みとソート

    いつも大変参考にさせていただいております。 csvファイルの読み込みとソートをしたく、ネットや過去ログ等を相当調べたのですが、完全に詰まってしまいました。 (検索キーワード:「php csv ソート」「php 二次元配列 ソート」など) とても困っています。どなたかよろしくお願いします。 以下のようなcsvファイルを読み込みソートしたいのです。 ■csvファイル 20110803, A, りんご 20111215, B, みかん 20110306, A, みかん 20110620, A, りんご 20110215, B, りんご ■個別にやりたい処理 (1)、左列の日付で昇順ソートしてすべて表示 (2)、「A」を含む行をすべて表示(日付順) (3)、「A」+「りんご」を含む行をすべて表示(日付順) □補足 csvをfgetcsvで読み込み、テーブルに入れて表示するところまではできました。 csvの行は増えていきます(max100行位)。列は固定。

    • ベストアンサー
    • PHP
  • Java バブルソート

    テキストファイルに文字が書き込まれていて、その文をASCIIコード順に並び替えるのですがStringからintに変換してバブルソートを行えばよろしいのでしょうか 詳しくお願いいたします 1行は10文字  50行までです 別ファイルに書き込みます sample1.txt cfd cad fa sample2.txt ・・・ ・・・

  • sortコマンドについて

    いつもお世話になっております。 sortコマンドについて質問させて下さい。 現在UNIXコマンドのsortによってファイルをソートしようとしています。 ソート対象となるファイルは下記の通りです。 ファイルの種類:csvファイル ファイルサイズ:80MByte 1レコード長:48Byte レコード数:120万レコード レコード例: 2,1000 ,1,10C0,15,0000000100000000000000000000000000000000 2,1117 ,1,10B0,16,0000000300000000000000000000000100000000 ・ ・ ・ そこで下記のようなコマンドにてソートしています。 sort -t, -k 1,1 -k 2,2 -k 3,3 -k 4,4 < fileA.csv > fileB.csv すると「sort:0653-657ソート中に書込みエラーが発生しました。」と出力され中断してしまいます。 自分なりにsortコマンドについて調べてみたところ、 /usr/tmpディレクトリのファイルシステムがいっぱいになることでコマンドが失敗しているようです。 (一時的にそのディレクトリにソート内容を展開しているようでした) 社内にて/usr/tmpディレクトリのファイルシステムの拡張を求めたところ「できない」と言われてしまいました。 開発の最終段階でのボリュームテストを行ったときの障害でしたので、 処理を大幅に変更するような対処は出来ない状況です。 代替方法などありましたらご教示頂きたいと思います。 以上、宜しくお願い致します。

  • J2SDK1.42 ArrayList ソート?

    ソートの仕方を教えてください。 下記のようなデータを年の順でソートしたいのですが。 格データを配列などで扱っているとしたらどのようなプログラムを組めばよいのでしょうか教えてください。 渡辺 50歳 埼玉県 鈴木 21歳 神奈川県 佐藤 40歳 沖縄県 array1 = new ArrayList();'array.get(0)が名前、array.get(1)が歳 array2 = new ArrayList(); array3 = new ArrayList(); などでは、歳をキーにしてSort()する方法はないのでしょうか? ほかによい方法があれば教えてください。 元データはCSVで配列などにいれてソートや絞込みが行えるようにしたいのですが。 以上よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 多段ソート

    C言語というよりはアルゴリズムの話です。 [名前], [生年月日] の2つのカラムで表される固定長の行データが羅列されたファイルがあります。 また、各カラムを比較して行をソートした場合にどの行が何番目にくるかといったインデックス情報を木構造で保持したファイルがあります。 (このファイルは行データの追加・削除時に更新される) これらのファイルを利用して、生年月日でソートし、かつ日時が同じ場合は名前順にソートした場合の上から10個分だけのデータを取り出したいのですが、効率のよい方法は無いでしょうか? 全データを読み込んでから、バブルソート等の順序を崩さないソートを多重にかけることはなるべく避けたいのです。 そのためにソート済みのインデックス的な役割を持つファイルを用意しているのですが、多段ソート時にどう応用すればよいのかわからなくなってしまいました。 例 日時、名前の順にソートされた上4つ分のデータが欲しい。 【一覧】 [1行目] 10/20, Aさん [2行目] 11/30, Fさん [3行目] 9/10, Cさん [4行目] 11/30, Bさん [5行目] 12/10, Dさん 【生年月日でソートされた インデックス】 9/10, 3行目 10/20, 1行目 11/30, 2行目 11/30, 4行目 12/10, 5行目 【名前でソートされた インデックス】 Aさん, 1行目 Bさん, 4行目 Cさん, 3行目 Dさん, 5行目 Fさん, 2行目 得たい結果 [3行目] 9/10, Cさん [1行目] 10/20, Aさん [4行目] 11/30, Bさん [2行目] 11/30, Fさん

  • ソート Comparator

    Integer型の変数num(10,4,8,6,9,5)をそれぞれ含むオブジェクト配列aryがあり、それをソートするため Arrays.sort(arry,sortLogic); とした場合、 Comparatorインターフェースを実装したクラスsortLogic内のメソッドで public int compare(Object object1, Object object2) {   return ((ary)object1).compareTo(((ary)object2).num); } とすると、昇順にソート(修正ソートマージ)、また、 return ((ary)object1).compareTo(((ary)object2).num); とすると降順にソートされるみたいなのですが、どのような手順(アルゴリズム)でソートされるのでしょうか?

    • ベストアンサー
    • Java
  • 2次元配列CSVのソート

    2次元配列で次のCSVファイルがあります。 フォームから入力したのですが、txtファイルには項目名(列名)が保存されていません。 taro,10,119 jiro,10,90 hanako,9,120 momoko,11,98 saburo,12,111 natuyo,10,130 sirou,8,88 このデータを年齢順、及び身長順に並べ替えをしたいのです。 列の名前がないので、手動でtxtファイル1行目に simei,toshi,shinchou と追記して 01: <?php 02: $data = "c:\××\××\shinchou.txt"; 03: $array = file($data); 04: foreach($array as $key => $row){ 05: $toshi[$key] = $row["toshi"]; 06: $shinchou[$key] = $row["shinchou "]; 07: } 08: print_r($array); 09: array_multisort($toshi,SORT_ASC, $shinchou,SORT_ASC, $array); 10: ?> と実行しましたが、 Array ( [0] => simei,toshi,shinchou  [1] => taro,10,119 ・・・・と、print_r($array)の結果が出るだけで、ソートが出来ません。 CSVファイルで項目名(列名)が無い場合の並べ替えはどのようにすれば良いでしょうか。 mySQLなどを利用しないと並べ替えは出来ないでしょうか。

    • ベストアンサー
    • PHP
  • csvファイルのソート

    perlで、csvファイルをある項目でソートした結果を表示したいのですが(つまりエクセルで並び替えをするようなこと)、ハッシュ配列等を使用しないとできないのでしょうか? 項目(列)は10項目くらいあります。

    • ベストアンサー
    • Perl
  • 構造体配列の安定なソート

    出席番号と得点の配列を持つ構造体配列で、 出席番号順に並んだ状態でqsortを使って得点をソートする場合、 同じ得点の人でも、出席番号順はばらばらになってしまいますよね。 調べてみて、バブルソートなど安定なソートを使えばいいということが分かったのですが、 qsortは標準ライブラリにあって、 比較関数も見よう見まねで作ってなんとかなったのですが、 他の方法となると具体的にどうすればいいのか、 よくわからない状況です。 http://homepage1.nifty.com/daccho/program/algo/sort3.htm こちらのサイトのソースファイルを見て、 普通のint配列のバブルソートは出来たのですが、 構造体配列を、構造体の中の一つの要素をキーにバブルソートできるようにするには、 ここからどのように変更すればいいのでしょうか? 並び替える内容はint型だけなので、文字列をソートできるようにする必要はなく、 ソート対象も少ないので(上限100程度)、速度的な問題は考慮しなくて大丈夫だと思います。 Cは勉強中で、基本文法がわかるぐらいという状況で、 もしかしたら変なことを言っているのかもしれませんが、 よろしくお願いします。

  • 配列のソートについて

    Array(    [0] => ../images/19991221.gif    [1] => ../images/19980801.png    [2] => ../2007/20070402.jpg    [3] => ../2009/20091231.jpg    [4] => ../../images/hoge/19950101.jpg    [5] => ../piyo/19951231.jpg ) 配列(階層の異なるパス)を、拡張子を除いたファイル名「20091231、20070402…」で、配列のまま、降順ソートしたいのですが、どうすればよいでしょうか? ファイル名だけを並べたいわけではなく、 ファイル名降順で、配列をソートしたいです。 ※このパスは後で使う予定のため

    • ベストアンサー
    • PHP