题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();
TreeMap<Character, StringBuilder> map = new TreeMap<>();
for (char c : str.toCharArray()) {
char d = Character.toLowerCase(c);
if ('a' <= d && d <= 'z') {
if (!map.containsKey(d)) {
map.put(d, new StringBuilder());
}
map.get(d).append(c);
}
}
// 将已排序好的字母部分合并
StringBuilder sb = new StringBuilder();
for (Map.Entry<Character, StringBuilder> entry : map.entrySet()) {
// System.out.println(entry.getKey() + "--" + entry.getValue());
sb.append(entry.getValue());
}
for (int i = 0; i < str.toCharArray().length; i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z') {
continue;
} else if (c >= 'A' && c <= 'Z') {
continue;
} else {
sb.insert(i, c);
}
}
System.out.println(sb.toString());
}
}

查看11道真题和解析