數字順序、字母逆序排序,並且字母與數字交替排列

        對任意輸入入的一個字符串,把數字從小到大排列,字母逆序排列,並且輸入後字母與數據交替排列。如:"5s3fa72cs4z134556sdd"執行後爲"z1s2s3s3f4d4d5c5a56"

  1. package com.test;  
  2.  
  3. import java.util.Arrays;  
  4. import java.util.Scanner;
  5.  
  6. public class Test  
  7. {  
  8.  
  9.     /**  
  10.      * {對任意輸入入的一個字符串,把數字從小到大排列,  
  11.      *  字母逆序排列,並且輸入後字母與數據交替排列}  
  12.      *   
  13.      * @param args  
  14.      * @author:LJ  
  15.      */ 
  16.     public static void main(String[] args)  
  17.     {  
  18.         System.out.print("請輸入字符串:");  
  19.         Scanner input = new Scanner(System.in);  
  20.         String str = input.next();  
  21.         String intStr = "";     //存儲數字字符  
  22.         String charStr = "";    //存儲字母字符  
  23.         //將輸入字符串拆分成數字字符串和字母字符串,以","分割  
  24.         for (int i = 0; i < str.length(); i++)  
  25.         {  
  26.             if (str.charAt(i) >= '0' && str.charAt(i) <= '9')  
  27.             {  
  28.                 intStr += str.charAt(i) + ",";  
  29.             }  
  30.             else 
  31.             {  
  32.                 charStr += str.charAt(i) + ",";  
  33.             }  
  34.         }  
  35.         //數字字符串和字母字符串分割成字符串數組  
  36.         String[] intArr = intStr.split(",");  
  37.         String[] charArr = charStr.split(",");  
  38.         //數字字符串數組和字母字符串數組排序  
  39.         Arrays.sort(intArr);  
  40.         Arrays.sort(charArr);  
  41.         str = "";       //原字符串置空,用來連接兩個字符串數組  
  42.         //兩個字符串數組合併爲字符串str  
  43.         int intLen = 0;  
  44.         int charLen = charArr.length - 1;  
  45.         //兩個數組同時合併  
  46.         while (intLen < intArr.length && charLen >= 0)  
  47.         {  
  48.             str += charArr[charLen--];  
  49.             str += intArr[intLen++];  
  50.         }  
  51.         //合併字母數組的剩餘元素  
  52.         while (charLen >= 0)  
  53.         {  
  54.             str += charArr[charLen--];  
  55.         }  
  56.         //合併數字數組的剩餘元素  
  57.         while (intLen < intArr.length)  
  58.         {  
  59.             str += intArr[intLen++];  
  60.         }  
  61.         System.out.print(str);  
  62.     }  
  63. }  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章