题解 | 字符串排序

字符串排序

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);
        // 注意 hasNext 和 hasNextLine 的区别
        String str=in.nextLine();

        Map<Integer,StringBuilder> map=new HashMap<>();
        char[] res=new char[str.length()];
        for(int i=0;i<str.length();i++){
            char ch=str.charAt(i);
            if((ch>=65&&ch<=90)){
                StringBuilder sb= map.get(ch-65);
                if(sb==null){
                    sb=new StringBuilder();
                }
                sb.append(ch);
                map.put(ch-65,sb);
            }else if(ch>=97&&ch<=122){
                StringBuilder sb= map.get(ch-97);
                if(sb==null){
                    sb=new StringBuilder();
                }
                sb.append(ch);
                map.put(ch-97,sb);
            } else{
                res[i]=ch;
            }
        }

        String sortedStr="";
        for(int j=0;j<26;j++){
            StringBuilder sb=map.get(j);
            if(sb!=null){
                sortedStr=sortedStr+sb.toString();
            }
        }
        int k=0;
        for(int n=0;n<res.length;n++){
            if(res[n]-' '<0){
                res[n]=sortedStr.charAt(k);
                k++;
            }
        }

        String resStr=new String(res);
        System.out.println(resStr);
    }
}

字符数组创建一个字符串:String resStr=new String(res);

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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