题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
import java.util.Scanner; import java.util.List; import java.util.ArrayList; // 注意类名必须为 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 line = in.nextLine(); char[] lineArray = line.toCharArray(); List<Integer> index = new ArrayList<Integer>(); for (int i = 0; i < lineArray.length; i++) { if (!Character.isLetter(lineArray[i])) { index.add(i); } } String newLine = line.replaceAll("[^a-z^A-Z]+", ""); char[] chars = newLine.toCharArray(); // 字符串排序 StringBuffer sb = new StringBuffer(); for (int i = 0; i < 26; i++) { for (int j = 0; j < chars.length; j++) { if ((char)((int)('a') + i) == chars[j]) { sb.append(chars[j]); } if ((char)((int)('A') + i) == chars[j]) { sb.append(chars[j]); } } } char[] result = new char[line.length()]; int k = 0; for (int i = 0; i < line.length(); i++) { if (!Character.isLetter(line.charAt(i))) { result[i] = line.charAt(i); } else { result[i] = sb.toString().charAt(k); k++; } } for (int i = 0; i < result.length; i++) System.out.print(result[i]); } } }