對任意輸入入的一個字符串,把數字從小到大排列,字母逆序排列,並且輸入後字母與數據交替排列。如:"5s3fa72cs4z134556sdd"執行後爲"z1s2s3s3f4d4d5c5a56"
- package com.test;
- import java.util.Arrays;
- import java.util.Scanner;
- public class Test
- {
- /**
- * {對任意輸入入的一個字符串,把數字從小到大排列,
- * 字母逆序排列,並且輸入後字母與數據交替排列}
- *
- * @param args
- * @author:LJ
- */
- public static void main(String[] args)
- {
- System.out.print("請輸入字符串:");
- Scanner input = new Scanner(System.in);
- String str = input.next();
- String intStr = ""; //存儲數字字符
- String charStr = ""; //存儲字母字符
- //將輸入字符串拆分成數字字符串和字母字符串,以","分割
- for (int i = 0; i < str.length(); i++)
- {
- if (str.charAt(i) >= '0' && str.charAt(i) <= '9')
- {
- intStr += str.charAt(i) + ",";
- }
- else
- {
- charStr += str.charAt(i) + ",";
- }
- }
- //數字字符串和字母字符串分割成字符串數組
- String[] intArr = intStr.split(",");
- String[] charArr = charStr.split(",");
- //數字字符串數組和字母字符串數組排序
- Arrays.sort(intArr);
- Arrays.sort(charArr);
- str = ""; //原字符串置空,用來連接兩個字符串數組
- //兩個字符串數組合併爲字符串str
- int intLen = 0;
- int charLen = charArr.length - 1;
- //兩個數組同時合併
- while (intLen < intArr.length && charLen >= 0)
- {
- str += charArr[charLen--];
- str += intArr[intLen++];
- }
- //合併字母數組的剩餘元素
- while (charLen >= 0)
- {
- str += charArr[charLen--];
- }
- //合併數字數組的剩餘元素
- while (intLen < intArr.length)
- {
- str += intArr[intLen++];
- }
- System.out.print(str);
- }
- }