1.字符串排序
题目描述
编写一个程序,将输入字符串中的字符按如下规则排序。
规则 1 :英文字母从 A 到 Z 排列,不区分大小写。
如,输入: Type 输出: epTy
规则 2 :同一个英文字母的大小写同时存在时,按照输入顺序排列。
如,输入: BabA 输出: aABb
规则 3 :非英文字母的其它字符保持原来的位置。
如,输入: By?e 输出: Be?y
示例
A Famous Saying: Much Ado About Nothing (2012/8).
A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).
分析
1.首先键盘接收一段字符串,可以用BufferedReader或者是Scanner
2.不区分大小写,所以循环26次判断,
3.先过滤字母,对字母进行排序,如果输入相同字母例如 A 和a按照输入的顺序进行排序,换句话说,你就不用刻意的考虑大小写问题,采用StringBuild来进行拼接,如果符合要求拼接在后面,继而实现了排序
4.对非字母进行插入到字符串里面,并且插入到原来的位置.
代码实现
import ;
import ;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader());
String str;
while ((str = ()) != null) {
char[] array = ();
StringBuilder ss = new StringBuilder();
for (int i = 0; i < 26; i++) {
char c = (char) ('A' + i);
for (int j = 0; j < (); j++) {
if (c == array[j] || c == array[j] - 'a' + 'A') {
(array[j]);
}
}
}
for (int i = 0; i < ; i++) {
if (!((array[i] >= 'a' && array[i] <= 'z') || (array[i] >= 'A' && array[i] <= 'Z'))) {
(i, array[i]);
}
}
(());
}
}
}