- 把字母撸出来到集合中排序
- 拼串 对源字符串中非字母位置保持不变,是字母的话就替换为list中排序好的字符(挨个取出)
class HelloWorld {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
char[] chars = s.toCharArray();
List<Character> list = new ArrayList<>();
for (int i = 0; i < chars.length ; i++) {
if (Character.isLetter(chars[i])) {
list.add(chars[i]);
}
}
list.sort(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
return Character.toLowerCase(o1)-Character.toLowerCase(o2);
}
});
StringBuilder sb = new StringBuilder();
for (int i = 0,j=0; i < chars.length; i++) {
if (!Character.isLetter(chars[i])) {
sb.append(chars[i]);
} else {
sb.append(list.get(j++));
}
}
System.out.println(sb.toString());
}
}