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 stub
20         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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM