package cn.itcast.wrapper.cast;
public class WrapperTest {
private static final String SPACE_SEPARATOR = " ";
public static void main(String[] args) {
/*
* 【题目】 对一个字符串中的数值进行从小到大排序 "20 78 9 -7 88 36 29"
*
* 【思路】 1.排序问题
*
* 2.如何获取到这个字符串中的这些需要排序的数值? 发现这个字符串中其实都是用空格来对数值进行分割的,
* 所以想到用字符串对象的切割方法将大串变成多个小串。
*
* 3.数值最终变成小字符串,怎么变成一个int类型的数呢? 字符串转成基本数据类型可用包装类来完成。
*/
String numStr = "20 78 9 -7 88 36 29";
System.out.println(numStr);
// 第一步,将字符串变成字符串数组(大串切割成小串)
String[] str_arr = stringToArray(numStr);
// 第二步,将字符串数组变成int数组
int[] num_arr = toIntArray(str_arr);
// 第三步,将int数组从小到大排序
mySortArray(num_arr);
// 第四步,将排序后的int数组变成字符串数组
String s = toStringArray(num_arr);
System.out.println(s);
}
public static String toStringArray(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]).append(SPACE_SEPARATOR);
}
else {
sb.append(num_arr[i]);
}
}
return sb.toString();
}
public static void mySortArray(int[] num_arr) {
for (int i = 0; i < num_arr.length - 1; i++) {
for (int j = i + 1; j < num_arr.length; j++) {
if (num_arr[i] > num_arr[j]) {
swap(num_arr, i, j);
}
}
}
}
private static void swap(int[] num_arr, int i, int j) {
int temp = num_arr[i];
num_arr[i] = num_arr[j];
num_arr[j] = temp;
}
public static int[] toIntArray(String[] str_arr) {
int[] arr = new int[str_arr.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(str_arr[i]);
}
return arr;
}
public static String[] stringToArray(String numStr) {
String[] arr = numStr.split(SPACE_SEPARATOR);
return arr;
}
}
16-05-常用对象API(基本数据类型对象包装类-练习)
最新推荐文章于 2024-04-18 17:36:12 发布