请问如何写能排出下边效果的 compare( Object o1, Object o2 ) 133pic61116DVDVM就是放入到 ArrayList 中的元素是 String, 排序出上边的效果谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 补充lsimport java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test { public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("3"); list.add("3pic"); list.add("6"); list.add("11"); list.add("16"); list.add("DVD"); list.add("VM"); for(String s:list) { System.out.println(s); } System.out.println("--------------"); Collections.sort(list,new Comparator<String>() { public int compare(String o1, String o2) { String s1 = o1.replaceAll("\\D", ""); String s2 = o2.replaceAll("\\D", ""); boolean error = false; int ia = 0; int ib = 0; try { ia = Integer.parseInt(s1); ib = Integer.parseInt(s2); } catch (NumberFormatException e) { error = true; } if(!error) { return ia - ib; } return o1.compareTo(o2); } }); for(String s:list) { System.out.println(s); } }} 轻量级Java ORM框架JDBC ORM Framework (Jorm) JTable中如何让一行的颜色变化 javamail 自己发送给自己收不到邮件 j2se新特性 关于socket的问题,请高手进来拿分! 区位码如何转成汉字?? 请问win98下怎莫打开命令提示符啊?(编译java程序) 通过jdbc-odbc bridge连结数据库问题 关于quartz定时java程序 为什么接口明明没有方法体,但是还有方法描述? 哎,无语了,复习看自加,自减的问题,晕了 急----Swing组件不能同时显示
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;public class Test { public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("3");
list.add("3pic");
list.add("6");
list.add("11");
list.add("16");
list.add("DVD");
list.add("VM"); for(String s:list) {
System.out.println(s);
}
System.out.println("--------------");
Collections.sort(list,new Comparator<String>() { public int compare(String o1, String o2) {
String s1 = o1.replaceAll("\\D", "");
String s2 = o2.replaceAll("\\D", "");
boolean error = false;
int ia = 0;
int ib = 0;
try {
ia = Integer.parseInt(s1);
ib = Integer.parseInt(s2);
} catch (NumberFormatException e) {
error = true;
}
if(!error) {
return ia - ib;
}
return o1.compareTo(o2);
}
});
for(String s:list) {
System.out.println(s);
}
}
}