/*
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,
打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},
则打印出这三个数字能排成的最小数字为321323。
*/
import java.util.*;
public class Class37 {
public String PrintMinNumber(int [] numbers){
if(numbers == null || numbers.length <= 0){
return "";
}
ArrayList<String> zuhe = new ArrayList<String>();
for(int number : numbers){
zuhe.add(String.valueOf(number));
}
Collections.sort(zuhe,new Comparator<String>(){
public int compare(String s1, String s2){
String a1 = s1 + s2;
String a2 = s2 + s1;
return a1.compareTo(a2);
}
});
StringBuilder s = new StringBuilder();
for(String str : zuhe){
s.append(str);
}
return s.toString();
}
public void test(){
int[] numbers = new int[]{3,32,321};
System.out.println(PrintMinNumber(numbers));
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Class37 c = new Class37();
c.test();
}
}