题解 | #字符串排序#

字符串排序

https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

import java.util.*;
import java.util.regex.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String s = in.nextLine();
            String s1 = s.replaceAll("[^a-zA-Z]", ""); //利用正则去掉非字母
            char[] c = s1.toCharArray(); //转换为字符数组方便排序
            for(int i=0;i<c.length;i++) { //插入排序
                char temp = c[i];
                for(int j=i-1;j>=0;j--) {
                    if(Character.toLowerCase(c[j])>Character.toLowerCase(temp)) { //比较时统一为小写字母,方便ASCLL比较
                        c[j+1]=c[j];
                        c[j]=temp;
                    }
                }
            }
            StringBuilder sb = new StringBuilder(String.valueOf(c)); //将排序后的数组转为可变字符串
            for(int i=0;i<s.length();i++) { //将非字母按照原来的顺序插回去
                char c1 = s.charAt(i);
                if( c1<'A' || (c1>'Z'&&c1<'a') || c1>'z') {
                    sb.insert(i, c1);
                }
            }
            System.out.print(sb.toString());
        }
    }
}

全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务