示例代码

import java.util.*;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static String sortHelp(String str) {
        ArrayList<Character> list = new ArrayList<>();
        //先将英文字母收集起来
        for (char ch : str.toCharArray()) {
            if (Character.isLetter(ch)) {
                list.add(ch);
            }
        }

        //先将英文字母排好序
        list.sort((a, b)->Character.toLowerCase(a) - Character.toLowerCase(b));

        StringBuilder res = new StringBuilder();
        int index = 0;
        for (int i = 0; i < str.length(); i++) {
            if (Character.isLetter(str.charAt(i))) {
                res.append(list.get(index++));
            } else {
                res.append(str.charAt(i));
            }
        }

        return new String(res);
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            System.out.println(sortHelp(in.nextLine()));
        }
    }
}

效果展示

牛客---HJ26 字符串排序_System