package sort;
/**
* 給定一個整數序列,重新排列,得到最大的結果,比如31,3,35,7,9根據排列後得到組合
* 9735331,返回的是string類型
*/
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Sort_Demo {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
String str=cin.nextLine();
String[] strarr=str.split(",");
String s=maxFun(strarr);
System.out.println("max="+s);
}
private static String maxFun(String[] strarr) {
if(strarr==null||strarr.length==0)
return "";
Arrays.sort(strarr,new Comparator<String>() {
public int compare(String s1,String s2){
int length1=s1.length();
int length2=s2.length();
StringBuilder sb1=new StringBuilder();
StringBuilder sb2=new StringBuilder();
sb1.append(s1);
sb2.append(s2);
//方法一,重新compare方法
//把s1與s2字符長度變爲一樣,短的後面添加兩者長度差的元素,比如s1=2345,s2=34,則把s2=3434
if(length1>length2){
sb2.append(s2.substring(0, length1-length2));
}
else{
sb1.append(s1.substring(0, length2-length1));
}
return sb2.toString().compareTo(sb1.toString());
}
});
//方法二,重新compare方法
// public int compare(String s1,String s2){
// int length1=s1.length();
// int length2=s2.length();
//// System.out.println("s1="+s1+" s2="+s2);
//// System.out.println("l1="+length1+" l2="+length2);
// StringBuilder sb1=new StringBuilder();
// StringBuilder sb2=new StringBuilder();
// for(int i=0;i<length2;i++)//爲了使sb1與sb2的位數相同
// sb1.append(s1);
//
// for (int i = 0;i<length1;i++) {
// sb2.append(s2);
// }
// System.out.println(sb2.toString().compareTo(sb1.toString()));
// return sb2.toString().compareTo(sb1.toString());
// }
// });
StringBuilder sb=new StringBuilder();
for (String string : strarr) {
sb.append(string);
}
return sb.toString();
}
}
給定一個整數(字符串也適用)序列,重新排列,得到最大的結果,比如31,3,35,7,9根據排列後得到組合 9735331,返回的是string類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Java排序算法(十二):總結
v墨竹v
2020-06-20 13:33:36
Java排序算法(十一):基數排序
v墨竹v
2020-06-20 13:33:36
Java排序算法(五):快速排序
v墨竹v
2020-06-20 12:24:30
Java排序算法(十三):補充-洗牌算法
v墨竹v
2020-06-20 11:16:29
Java排序算法(九):歸併排序
v墨竹v
2020-06-20 11:16:19
Java排序算法(三):堆排序
v墨竹v
2020-06-20 11:16:17
Java排序算法(七):折半插入排序
v墨竹v
2020-02-20 21:44:55
Java排序算法(一):概述
v墨竹v
2020-02-20 21:44:55
Java排序算法(十):桶式排序
v墨竹v
2020-02-20 21:44:55
Java排序算法(四):冒泡排序
v墨竹v
2020-02-20 21:44:55
Java排序算法(六):直接插入排序
v墨竹v
2020-02-20 21:44:55
Java排序算法(八):希爾排序(Shell排序)
v墨竹v
2020-02-20 21:44:55
Java常用排序算法/程序員必須掌握的8大排序算法
老新人
2019-03-10 19:49:03
排序算法的java實現
wggoeasy
2018-08-31 08:32:07