1. 程式人生 > >Java練習題14_6(第一階段基礎)

Java練習題14_6(第一階段基礎)

2018.10.23 晴

程式練習題1 :把給定字串中的數字字元排序需求:我有如下一個字串:”91 27 46 38 50”,請寫程式碼實現最終輸出結果是:”27 38 46 50 91

1.分析:
(1)將字串切割成單個數字字元
實現方法:String類 中的split()方法
(2)將字元陣列的元素轉換為int型別儲存在int陣列中(因為字元型別元素排序是根據第一個數字字元排序的(如100 會小於80))
實現方法: Intager包裝類中的parseInt() 方法
(3)將陣列進行排序
實現方法: 可以用選擇排序或者氣泡排序
或者Arrays中的sort()方法
(4)將Int陣列中元素拼接成字串
實心方法:*String 的空串進行拼接(由於是不可變字元序列,會造成很多垃圾)
*StringBuilder 進行拼接(可變字串)

實現程式碼:


package com.heima.text;

import java.util.Arrays;

public class text {
public static void main(String[] args) {
	String s = "91 27 46 38 50";	//原始字串
	
	//1.將字串切割成成字元陣列,split()
	String regex = "\\s";
	String[] arr1 = s.split(regex);
	//2.將字元陣列中的字串轉換成數字,再儲存在一個等長度的int型別陣列中,parseInt()
	int[] arr2 = new int[arr1.length];	//建立一個等長度的int型別陣列
	for (int i = 0; i < arr2.length; i++) {
		arr2[i] = Integer.parseInt(arr1[i]);
	}
	//3.將陣列進行排序,sort()
	Arrays.sort(arr2);
	//4.將int型別陣列轉換成字串,append()
	StringBuilder sb = new StringBuilder();	//新建一個可變字串類物件
	for (int i = 0; i < arr2.length; i++) {
		if(i == arr2.length-1) {
			sb.append(arr2[i]);
		}else {
			sb.append(arr2[i] + " ");
		}
	}
	//5.列印
	System.out.println(sb);
}
}
}
}

程式碼結果:
27 38 46 50 91