题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String str = in.nextLine();
char[] charArr = new char[str.length()];
// 纯字母
ArrayList<Character> list = new ArrayList<>();
// 初始化
for (int i = 0; i < str.length(); i++) {
char t = str.charAt(i);
if ((t >= 'a' && t <= 'z') || (t >= 'A' && t <= 'Z')) {
list.add(t);
} else {
charArr[i] = t;
}
}
// 排序子母
Collections.sort(list, new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
Character t1 = Character.toLowerCase(o1);
Character t2 = Character.toLowerCase(o2);
return t1.compareTo(t2);
}
});
int index = 0;
for (int i = 0; i < str.length(); i++) {
if ((int)charArr[i] != 0) {
System.out.print(charArr[i]);
} else {
System.out.print(list.get(index));
index++;
}
}
}
}