对任意输入入的一个字符串,把数字从小到大排列,字母逆序排列,并且输入后字母与数据交替排列。如:"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. }