我遇到了一篇文章,展示了如何按字母顺序排列 char 数组。看到可以这样做,我想按输入字符串的字符顺序输出输入字符串的每个字符的字母顺序。
我有点卡住了。我可以按字母顺序重新排序字符串,但我不知道下一步该做什么。
例子是 'monkey' 到 '354216'
因为 'ekmnoy' e 在给定字符集中按字母顺序排在第一位,所以 e = 1 , k 是排序后的第二个 alpha 字符,所以 k = 2,依此类推。
如果您无法理解,我可以提供更多示例来说明清楚。
代码
String str = "airport";
Character[] chars = new Character[str.length()];
for (int z = 0; z < chars.length; z++) {
chars[z] = str.charAt(z);
}
Arrays.sort(chars, new Comparator<Character>() {
public int compare(Character c1, Character c2) {
int cmp = Character.compare(
Character.toLowerCase(c1.charValue()),
Character.toLowerCase(c2.charValue()));
if (cmp != 0) {
return cmp;
}
return Character.compare(c1.charValue(), c2.charValue());
}
});
StringBuilder sb = new StringBuilder(chars.length);
for (char c : chars) {
sb.append(c);
}
str = sb.toString();
System.out.println(sb);
输出
aioprrt
预期产出
Orange -> aegnOr
561432 - 123456
Monkey -> ekMnoy
354216 -> 123456