aaa, , ,59, ,
aaa, , ,17, ,
aaa, , ,02, ,
↓
aaa, , ,02, ,
aaa, , ,17, ,
aaa, , ,59, ,
上記の様に途中にあるカンマ区切りの数字でソートしたいです。
Collections.sortで辞書的にソートすることはできました。
カンマが一つだけなら
java
1class MyComparator implements Comparator{ 2public int compare(Object obj1,Object obj2){ 3int num1; 4int num2; 5 6String str1; = obj1.toString(); 7String str1; = obj1.toString(); 8 9num1 = Integer.parseInt(str1.substring(str1.indexOf(’,’)+1).trim()); 10 11num2 = Integer.parseInt(str2).substring(str2.indexOf(’,’)+1).trim()); 12 13return num1 - num2 14} 15} 16 17Collections.sort(リスト名,new MyComparator());
上記で出来たのですが、カンマが複数ある場合に応用できませんでした。
追記
上記のコードではint型の変数でソートしていますが、実際の環境ではカンマ区切りの文字列の中には1A,1Wなどのint型に変換できないものも含まれます。
string型でソートしたいです。
えーっと・・
職場のコードをそのままでないとはいえ公開されている場に出していいのかという疑問は大いにあるのですが、
いずれにしても「コピペで確認できるコード」が大原則なので、コピペでコードが提示できないのであれば、できるような環境において質問されたほうが良いかと思います。
でないと、回答する側が考慮しなければならない点が多すぎて、的確な回答が得られない可能性もあります(インデントあるなしで質問からバックしてしまう回答者もいるので)
なぜ職場で直接質問できないのか、その背景が分かりません。
補足:
当初の質問には、『職場の環境上コードをコピペできないのでiPhoneの手打ちでやっています。コード全文を載せられなくてすいません。』という文言がありました。https://teratail.com/questions/history-questions/200831
職場のpcがネットに繋がっておらず、コピペは不可です。
職場で質問できないため、こちらで質問させて頂きました。(上司のスケジュール等)
ご指摘ありがとうございました。
「int型に変換できないもの」の位置は各行で共通ですか?
共通です
回答3件
あなたの回答
tips
プレビュー