Skip to content

Latest commit

 

History

History
92 lines (62 loc) · 1.77 KB

包裝類-練習.md

File metadata and controls

92 lines (62 loc) · 1.77 KB

包裝類 - 練習

需求

對一個字符串中的數值進行從小到大的排序。 "20 78 9 -7 88 36 29"

思路

  1. 這個字符串中其實都是空格對數值進行分隔。 所以就想到用字符串對象的切割方法將大串變成多個小串。
  2. 字符串 -----> 基本類型 可以使用包裝類

Example

import java.util.Arrays;

public class WrapperDemo2 {
	
	private static final String SPACE_SEPERATOR = " ";

	public static void main(String[] args) {

		String s = "20 78 9 -7 88 36 29";
		
		System.out.println(s);
		
		String num_str = sortStringNum(s);
		System.out.print(num_str);
	}
	
	public static String sortStringNum(String s) {
		
		//將字符串變成字符串數組
		String[] str_arr = toStringArray(s);
		
		//將字符串數組變成 int 數組
		int[] num_arr = toIntArray(str_arr);
		
		//對 int 數組排序
		sortArray(num_arr);
		
		//將排序後的數組變成字符串
		String temp = arrayToString(num_arr);
		
		return temp;
	}
	
	public static String[] toStringArray(String s) {
		
		String[] str_arr = s.split(SPACE_SEPERATOR);
		
		return str_arr;
	}
	
	public static int[] toIntArray(String[] str_arr) {
		
		int[] num_arr = new int[str_arr.length];
		
		for(int i = 0; i < num_arr.length; i++) {
			
			num_arr[i] = Integer.parseInt(str_arr[i]);
		}
		
		return num_arr;
	}
	
	public static void sortArray(int[] num_arr) {
		
		Arrays.sort(num_arr);
	}
	
	public static String arrayToString(int[] num_arr) {
		
		StringBuilder sb = new StringBuilder();
		
		for(int i = 0; i < num_arr.length; i++) {
			
			if(i != num_arr.length - 1) {
				sb.append(num_arr[i] + SPACE_SEPERATOR);
			} else {
				sb.append(num_arr[i]);
			}
		}
		
		return sb.toString();
	}
}

打印結果

20 78 9 -7 88 36 29
-7 9 20 29 36 78 88