首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-02-08 
求救String数组的排序问题String[] str new String[]{19.mp3,1.mp3,2.mp3}Arrays.sort(musicName

求救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;    }} 

热点排行
Bad Request.