首页 > 代码库 > 36:字符串排序SortString
36:字符串排序SortString
题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。
规则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).
思路:一个嵌套循环把字符串中的字母进行排序,把所有排序后的字母专门放在temp[]中,最后输出的时候,遍历原来的字符数组,如果某一位是字母,那么去temp中取对应位置已经排好序的字母输出,非字母,就输出原位置字符。
1 /*题目描述:编写一个程序,将输入字符串中的字符按如下规则排序。 2 规则1:英文字母从A到Z排列,不区分大小写。 3 如,输入:Type 输出:epTy 4 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 5 如,输入:BabA 输出:aABb 6 规则3:非英文字母的其它字符保持原来的位置。 7 如,输入:By?e 输出:Be?y 8 样例: 9 输入:10 A Famous Saying: Much Ado About Nothing(2012/8).11 输出:12 A aaAAbc dFgghh: iimM nNn oooos Sttuuuy (2012/8).13 */14 import java.util.Scanner;15 16 public class Main {17 18 public static void main(String[] args) {19 // TODO Auto-generated method stub20 Scanner in = new Scanner(System.in);21 while(in.hasNext())22 {23 String input = in.nextLine();24 int length = input.length();25 char[] array = input.toCharArray();26 //input里面的所有字母排序27 char[] temp = new char[length];28 int k = 0;29 for(int i = 0; i<26; i++)30 {31 for(int j = 0; j<length; j++)32 {33 if(array[j] - ‘a‘ == i || array[j] - ‘A‘ == i)34 {35 temp[k++] = array[j];36 }37 }38 }39 //notice!!40 k = 0;41 for(int i = 0; i<length; i++)42 {43 if(array[i] >= ‘a‘ && array[i] <= ‘z‘ || array[i] >= ‘A‘ && array[i] <= ‘Z‘)44 {45 array[i] = temp[k++];46 //array[i] = temp[i];47 }48 }49 System.out.println(String.valueOf(array));50 }51 }52 53 }
36:字符串排序SortString
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。