题解 | #字符串排序#

字符串排序

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());
    }
}

全部评论

相关推荐

明天不下雨了:这个项目 这个简历 这个模板 莫不是一个开源的
点赞 评论 收藏
分享
牛客44664404...:把个人技能删了搞这么长干什么!还有你面试要先针对那个公司的技术栈专门去准备,别一问三不知,他需要你会他们公司对口的技术,写这么多不对口没有用
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务