java中按照数字字母排序

在一次面试的时候被面试官问到的一道问题,当时完全不知道是咋回事,今天特在这里记录一下

java中如何给一串有数字字母的字符串排序呢?

@Test
public void removeDuplicate2(){
    String[] array ={"b","a","c","a","1","3","E"};
    Arrays.sort(array,String.CASE_INSENSITIVE_ORDER);
    Set<String> str = new HashSet<String>();
    List<String> list = new ArrayList<String>();
    for (int i = 0; i < array.length; i++) {
        if(str.add(array[i])){
            list.add(array[i]);
        }
    }
    System.out.println("list"+list);
}

控制台打印的结果

String.CASE_INSENSITIVE_ORDER这个断应该很多朋友都有疑问但是看过源码的都知道,这里是通过ASCII排序的