写在前面:
这到问题,本身解决起来,比较容易,但是由这道题,我们可以重温一下java基础中,Comparator接口,Arrays类以及String类的一些方法。
我们先来看一下代码实现:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
public class Solution {
public String PrintMinNumber(int [] numbers) {
if(numbers==null||numbers.length==0){
return "";
}
StringBuilder sb=new StringBuilder();
int len=numbers.length;
String []arr=new String[len];
//将数据存入String数组
for(int i=0;i<len;i++){
arr[i]=String.valueOf(numbers[i]);
}
//比较
Arrays.sort(arr,new Comparator<String>(){
//重写比较方法
@Override
public int compare(String s1,String s2){
String c1=s1+s2;
String c2=s2+s1;
return c1.compareTo(c2);
}
});
for(int i=0;i<len;i++){
sb.append(arr[i]);
}
return sb.toString();
}
}
相关Java基础回顾
(1)Arrays类
Arrays.sort()是Arrays类提供的一种排序方法,他可以有几种排序方式
1.默认排序,按字典ASCII顺序排序
2.使用提供好的方式:
eg:Arrays.sort( str,Collections.reverseOrder() )
3.自定义排序方法
自定义排序需要实现Java.util.comparator中的compare方法。
eg:
Arrays.sort(arr,new Comparator<String>(){
//重写比较方法
@Override
public int compare(String s1,String s2){
String c1=s1+s2;
String c2=s2+s1;
return c1.compareTo(c2);
}
});
(2)String类
String.valueOf(Object obj)
这个方法的意义在于,将一个Object对象转换为一个字符串,方便我们的使用。