您的位置:首页 > 编程语言 > Java开发

编写一个能将给定非负整数列表中的数字排列成最大数字的函数。

2015-11-29 21:44 656 查看
//编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。
public class Test4{
public static void main(String[] args){
int[] list={85,840,860,760,9};

System.out.println(getMaxList(list));
}

//获取最大值列表
public static String getMaxList(int[] list){
String[] str_list=new String[list.length];
String mergeStr="";
for(int i=0;i<list.length;i++){
str_list[i]=Integer.toString(list[i]);
}
for(int i=0;i<str_list.length-1;i++){
for(int j=i+1;j<str_list.length;j++){
String[] str=linkNum(str_list[i],str_list[j]);
str_list[i]=str[0];
str_list[j]=str[1];
}
}
for(int i=0;i<str_list.length;i++){
mergeStr+=str_list[i];
}
return mergeStr;
}
//把俩数拼接成最大的数字
public static String[] linkNum(String str1,String str2){

int min_length=str1.length()<=str2.length()?str1.length():str2.length();
String[] str3=new String[2];
str3[0]=str1;
str3[1]=str2;
int i=1;
for(;i<=min_length;i++){

if(str1.substring(i-1,i).compareTo(str2.substring(i-1,i))<0){
str3[0]=str2;
str3[1]=str1;
break;
}
else if(str1.substring(i-1,i).compareTo(str2.substring(i-1,i))>0){
break;
}
}

return str3;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 java