题目描述
输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Solution {
public String PrintMinNumber(int [] numbers) {
// 用于拼接字符串
StringBuilder res = new StringBuilder();
int length = numbers.length;
String[] str = new String[length];
// 将数字数组[] 转化为 字符串[]
for(int i=0; i<length ; i++){
str[i] = String.valueOf(numbers[i]);
}
// 使用Arrays工具对数组进行 自定义排序
Arrays.sort(str, new Comparator<String>(){
@Override
public int compare(String o1, String o2){
if((o1+o2).compareTo(o2+o1)<0){
return -1;
}
return 1;
}
});
// 进行字符串的拼接
for(String a: str){
res.append(a);
}
return res.toString();
}
}