import java.util.Scanner; import java.util.ArrayList; import java.util.List; import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static String sortString(String input) { if (input == null || input.isEmpty()) { return input; } char[] chars = input.toCharArray(); List<Character> letters = new ArrayList<>(); List<Integer> letterPositions = new ArrayList<>(); // 第一步:收集所有字母字符及其位置 for (int i = 0; i < chars.length; i++) { if (Character.isLetter(chars[i])) { letters.add(chars[i]); letterPositions.add(i); } } // 第二步:对字母进行排序(稳定排序,不区分大小写) // 使用冒泡排序实现稳定排序(可以替换为其他稳定排序算法) for (int i = 0; i < letters.size() - 1; i++) { for (int j = 0; j < letters.size() - 1 - i; j++) { char c1 = Character.toLowerCase(letters.get(j)); char c2 = Character.toLowerCase(letters.get(j + 1)); if (c1 > c2) { // 交换位置 char temp = letters.get(j); letters.set(j, letters.get(j + 1)); letters.set(j + 1, temp); } } } // 第三步:将排序后的字母放回原位置 for (int i = 0; i < letterPositions.size(); i++) { chars[letterPositions.get(i)] = letters.get(i); } return new String(chars); } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); System.out.println(sortString(input)); } }