黑马程序员技术交流社区
标题:
文本排序(正序和倒序)
[打印本页]
作者:
yuanjun52306
时间:
2015-12-7 12:49
标题:
文本排序(正序和倒序)
本帖最后由 yuanjun52306 于 2015-12-7 12:51 编辑
package com.heima;
import java.util.Arrays;
/**
*
* 需求:对一个字符串中的数值进行从小到大的排序
*
*/
public class Demo1 {
public static void main(String[] args){
String s = "22 4 65 78 -25 0 -100 55";
System.out.println(s);
System.out.println(paiXu(s));
}
public static String paiXu(String s){
//1、字符串→字符串[]
String[] str_arr = paiXu1(s);
//2、字符串[]→整数[]
int[] i_arr = paiXu2(str_arr);
//3、整数[] 排序
paiXu3(i_arr);
//4、整数[]→字符串
String str = paiXu4(i_arr);
return str;
}
public static String[] paiXu1(String s){
String[] str_arr = s.split(" ");
return str_arr;
}
public static int[] paiXu2(String[] str_arr){
int[] i_arr = new int[str_arr.length];
for(int i = 0 ; i < str_arr.length ; i++){
i_arr[i] = Integer.parseInt(str_arr[i]);
}
return i_arr;
}
public static void paiXu3(int[] i_arr){
Arrays.sort(i_arr);
}
public static String paiXu4(int[] i_arr){
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < i_arr.length ; i++){
if(i != i_arr.length-1){
sb.append(i_arr[i]+" ");
//从大到小:sb.append(i_arr[i_arr.length-1-i]+" ");
}else{
sb.append(i_arr[i]);
//从大到小:sb.append(i_arr[i_arr.length-1-i]);
}
}
return sb.toString();
}
}
复制代码
刚学到这里,做个标记
作者:
迷茫不堪的年纪
时间:
2015-12-8 19:45
个人感觉, 可以先吧字符串 直接转为 数组, 之后使用数组工具类,进行排序,最后转为String 输出就好!
作者:
yuanjun52306
时间:
2015-12-9 03:03
迷茫不堪的年纪 发表于 2015-12-8 19:45
个人感觉, 可以先吧字符串 直接转为 数组, 之后使用数组工具类,进行排序,最后转为String 输出就好! ...
直接转为数组?求代码
作者:
hdhunter
时间:
2015-12-9 08:40
一看到需求,我惊了。。不过没关系了,问题就是被解决的。前3次后一次的转化,只为一个Arrays.sort。。赞一下最后的StingBuffer,sb就是为了这个生的。
我忽然想了另一种可以替代sb。Arrays.toString(int[] arr);然后 string.replaceAll();。
很高兴交流。。哈哈哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2