当前位置: 代码迷 >> J2SE >> 求救String数组的排序有关问题
  详细解决方案

求救String数组的排序有关问题

热度:100   发布时间:2016-04-24 13:02:24.0
求救String数组的排序问题
String[] str = new String[]{"19.mp3","1.mp3","2.mp3"};
Arrays.sort(musicName);
排序出来的结果是"1.mp3","19.mp3","2.mp3".
因为"1.mp3"和"19.mp3"只能比较第1位
所以"1.mp3"就比"19.mp3"大;
请高人给写个代码,要让这种类型的可以比较

------解决方案--------------------
Java code
import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Temp{    public static void main(String args[])    {        String[] str = new String[]{"19.mp3","1.mp3","2.mp3"};                 for(Object s: sort(str))        {            System.out.println(s);        }    }        public static String[] sort(String[] strs)    {        String[] ret = new String[strs.length];        List<String> list = new ArrayList<String>();                for(String str: strs)        {            list.add(str);        }                Collections.sort(list, new CustomComparator());                for(int i = 0; i < list.size(); i++)        {            ret[i] = list.get(i);        }                return ret;    }}class CustomComparator implements Comparator<String>{    public int compare(String str1, String str2)    {        int name1 = Integer.parseInt(str1.substring(0, str1.indexOf(".")));        int name2 = Integer.parseInt(str2.substring(0, str2.indexOf(".")));        return name1 - name2;    }}
  相关解决方案