String s=“(1,2);20!(21,32);40!(50,60);40!(5,2);10!”;();!是一组数,比如(1,2);20!这是一组数。要求按!之前;之后的数把();!这一组数进行排序,求最佳算法
排序后应该是这样的:
String s=“(5,2);10!(1,2);20!(21,32);40!(50,60);40“;

解决方案 »

  1.   


    public class Sort { /**
     * @param args
     */
    public static void main(String[] args) {
    String s = "(1,2);20!(21,32);40!(50,60);40!(5,2);10!";
    String[] arr = s.split("!");
    Arrays.sort(arr, comparator);
    for (String a : arr) {
    System.out.print(a + "!");
    }
    } static Comparator<String> comparator = new Comparator<String>() {
    public int compare(String o1, String o2) {
    return Integer.parseInt(o1.split(";")[1]) - Integer.parseInt(o2.split(";")[1]);
    }
    };
    }