1. 程式人生 > >java 對字串中的數值排序

java 對字串中的數值排序

對"34 9 -7 12 67 25"這個字串中的數值從小到大排序!

介紹幾個快捷鍵:for+"alt+/"快速寫一個for迴圈     選中某一個小寫單詞 Ctrl+Shift+x  可變大寫         選中某一個大寫單詞 Ctrl+Shift+y  可變小寫

下面請看具體實現程式碼:

import java.util.Arrays;


public class Main_4 {
	private static String SPACE=" ";

	public static void main(String[] args)
	{
		/*
		 * 綜合練習:
		 * 對"34 9 -7 12 67 25"這個字串中的數值從小到大排序
		 */
		String str="34 9 -7 12 67 25";
		str=sortStringNumber(str);
		System.out.println(str);
	}

	private static String sortStringNumber(String str) {
		// 1 將字串中的數值通過一定的規則進行切割獲取字串陣列
		String[] str_nums=toStringArray(str);
		
		// 2 將字串陣列轉換成int陣列
		int[] nums=toIntArray(str_nums);
		
		// 3 對int陣列排序
		sortIntArray(nums);
		
		// 4 將int陣列變成字串
		return ArrayToString(nums);
	}

	/*
	 * 將int陣列變成字串
	 */
	private static String ArrayToString(int[] nums) {
		// 1 建立字串緩衝區
		StringBuilder sb=new StringBuilder();
		for (int i = 0; i < nums.length; i++) {
			if(i!=nums.length-1)
				sb.append(nums[i]+SPACE);
			else
				sb.append(nums[i]);
		}
		return sb.toString();
	}

	/*
	 * 對int陣列排序
	 */
	private static void sortIntArray(int[] nums) {
		Arrays.sort(nums);
		
	}

	/*
	 * 將字串陣列轉換成int陣列
	 */
	private static int[] toIntArray(String[] str_nums) {
		// 定義一個int陣列
		int[] arr=new int[str_nums.length];
		// 對字串陣列進行遍歷
		for (int i = 0; i < arr.length; i++) {
			// 將陣列格式的字串轉成整數,儲存到arr陣列中
			arr[i]=Integer.parseInt(str_nums[i]);
		}
		return arr;
	}

	/*
	 * 將字串轉成字串陣列
	 */
	private static String[] toStringArray(String str) {
		return str.split(SPACE);
	}
}