您的位置:首页 > 其它

巧妙的字符串排序,保证你不看,绝对想不到

2016-12-05 17:35 204 查看


题目描述

编写一个程序,将输入字符串中的字符按如下规则排序。规则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).//思路:利用桶排序的思想

import java.util.*;public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
while (s.hasNext()) {
String str = s.nextLine();
ArrayList ls = new ArrayList();此注释为经典的桶排序思想// for (int j = 0; j < 26; j++)
// for (int i = 0; i < str.length(); i++) {
// char ch = str.charAt(i);
// if (ch - 'a' == j || ch - 'A' == j)
// ls.add(ch);
// }
int k = 0;StringBuffer sb=new StringBuffer();
for(int i=0; i<str.length(); i++){
char chs=str.charAt(i);
if ((chs >= 'a' && chs <= 'z') || (chs >= 'A' && chs <= 'Z'))
sb.append(ls.get(k++));
else
sb.append(chs);
}
System.out.println(sb.toString());
}}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: