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型でソートしたいです。
回答3件
あなたの回答
tips
プレビュー