🍑 算法题解专栏
🍑 字符串排序Ⅱ
输入
A Famous Saying: Much Ado About Nothing (2012/8).
输出
A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
🍑 只处理 字母
🍑 开个 list 对 字母 进行稳定排序
🍑 把排好序后的字母按顺序填回字符串里字母的坑位里
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
while (sc.hasNext())
{
String s = sc.nextLine();
ArrayList<Character> list = new ArrayList<>();
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c >= 'a' && c <= 'z' || (c >= 'A' && c <= 'Z'))
{
list.add(c);
}
}
list.sort((o1, o2) -> Character.toLowerCase(o1) - Character.toLowerCase(o2));
int idx = 0;
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
if (c >= 'a' && c <= 'z' || (c >= 'A' && c <= 'Z'))
{
System.out.print(list.get(idx++));
} else
{
System.out.print(s.charAt(i));
}
}
System.out.println();
}
}
}