Java 将array.sort()用于非字母字符,如{&';&+;&';';1&';D';}

Java 将array.sort()用于非字母字符,如{&';&+;&';';1&';D';},java,arrays,sorting,char,Java,Arrays,Sorting,Char,我的示例字符串是“D+1” 我把它转换成一个字符数组 我想对它们进行排序,使其成为ASCII样式,所以它应该是{'+','1','d'} 然后我可以手动将运算符“+”移动到中间位置,这样当我将它转换回字符串时,它会变成“1+D” 在这种情况下,Arrays.sort()不起作用,是否存在普遍存在的修复程序 这样我就不用在散列映射中输入一大堆条目了 if (comp.length()>2) { char[] compChars = comp.toCharArray()

我的示例字符串是“D+1”

我把它转换成一个字符数组

我想对它们进行排序,使其成为ASCII样式,所以它应该是{'+','1','d'}

然后我可以手动将运算符“+”移动到中间位置,这样当我将它转换回字符串时,它会变成“1+D”

在这种情况下,Arrays.sort()不起作用,是否存在普遍存在的修复程序

这样我就不用在散列映射中输入一大堆条目了

if (comp.length()>2)
    {
        char[] compChars = comp.toCharArray();

        boolean exit = false;
        if (compChars[1] == '-')
            exit = true;

        // if there is no subtraction
        if (!exit) {

            // TODO: fix
            Arrays.sort(compChars);
            char temp = compChars[0];
            compChars[0] = compChars[1];
            compChars[1] = temp;

            comp = String.valueOf(comp);

        }

    }

对我来说,你的例子对“D+1”非常有效。唯一的错误是,在最后一行中,您需要

comp=String.valueOf(compChars)

提示:数组的方法。排序采用比较器。输入字符串(
comp
)的形式是什么?你举了一个例子,但一般的规则是什么?最初的问题是什么?
“AB-21”
的输出是
“21-AB”
还是什么?