java题,将该字符串每个字符与'U'之差的绝对值的升序排序

输入一组字符串,将该字符串每个字符与'U'之差的绝对值的升序排序。在线等!!?

每个字符都减去同一个字符跟不减不一样么?没有必要啊。直接排序即可。

首先,按照我的一贯观点,这种问题和编程语言无关,和编程语言无关,和编程语言无关。
重要的事情说三遍!

设计重点:
1.与U的差值存储;
2.升序排序。

已知的排序算法相当多,不过在本问题情形下,需要稍作变通。

给出一个简单方案吧:
给定字符串Char[];
比较差值,存储差值数据到deta[i];
*对deta数组排序(比较deta,但是对Char进行移动);
按序输出。

 public static void main(String[] args) 
    {
        System.out.println("Hello World!");
        String s = "ABKPWUdajiewaYOWBWQYX";
        Character[] array = new Character[s.length()];
        for(int i = 0; i < s.length(); i ++){
            array[i] = s.charAt(i);
        }
        Arrays.sort(array,new myComparator());
        System.out.println(Arrays.toString(array));
    }
    public static class myComparator implements Comparator<Character>
    {
        @Override
        public int compare(Character e1, Character e2){
            int a = Math.abs(e1 - new Character('U'));
            int b = Math.abs(e2 - new Character('U'));
            System.out.println("a:" + a + "b:" + b);

            if(a > b){
                return 1;
            }else if(a < b){
                return -1;
            }else{
                return 0;
            }

        }
    }