题解 | #字符串排序#
字符串排序
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 的区别
// while (in.hasNextLine()) { // 注意 while 处理多个 case
// String s = in.nextLine();
// }
List<Character> list = new ArrayList<>();
List<Integer> pos = new ArrayList<>();
String s = in.nextLine();
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if ((chars[i] >= 'a' && chars[i] <= 'z') || (chars[i] >= 'A' && chars[i] <= 'Z')) {
list.add(chars[i]);
pos.add(i);
}
}
Collections.sort(list, new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
int x = (o1.charValue() >= 'a' && o1.charValue() <= 'z') ? o1.charValue() - 32 : o1.charValue();
int y = (o2.charValue() >= 'a' && o2.charValue() <= 'z') ? o2.charValue() - 32 : o2.charValue();;
return x - y;
}
});
for (int i = 0; i < pos.size(); i++) {
chars[pos.get(i)] = list.get(i);
}
String s1 = String.valueOf(chars);
System.out.println(s1);
}
}
