题解 | #字符串排序#
字符串排序
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());
}
}
}

腾讯云智研发成长空间 5088人发布
查看1道真题和解析