题解 | 字符串排序
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
// 注意类名必须为 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 str = in.nextLine();
int n = str.length();
List<Character> list = new ArrayList<Character>();
char []charS = new char[n];
for (int i = 0; i < n; i++) {
if (str.charAt(i) >= 65 && str.charAt(i) <= 90 || str.charAt(i) >= 97 &&
str.charAt(i) <= 122) {
list.add(str.charAt(i));
} else {
charS[i] = str.charAt(i);
}
}
list.sort((a, b)->Character.toLowerCase(a) - Character.toLowerCase(b));
int i = 0;
Iterator it = list.iterator();
while (i < n) {
if (charS[i] == 0 && it.hasNext()) {
Character c = (Character)it.next();
charS[i] = c;
}
i++;
}
StringBuilder sb = new StringBuilder();
for (int j = 0; j < n; j++) {
sb.append(charS[j]);
}
System.out.println(sb.toString());
}
}
}
MiniMax成长空间 42人发布