题解 | #字符串排序#
字符串排序
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()); } }