比如说{9,98,123,32}, 组合成最大的数就是 99832123 ,数组内数的个数,和数的大小不定不过都是正整数
一种比较懒和笨的方法:
1,将int 数组 转换成字符串数组
2,找出字符串数组中最长的字符串的长度
3,将字符串数组中的字符串,全部在末尾加’o‘(只要大于9的ASCII码就行)
4,将字符串数组中的字符串排序(Arrays.sort(),应该是升序)
5,将字符串数组中的每个字符串,从后往前打印,遇到’o‘,不打印
如上例:int[] {9, 98, 123, 32} -- ---》String[] {9, 98, 123, 32} ----->String[] {9oo, 98o, 123, 32o}
字符串数组排序后:String[] {123,32o,98o,9oo}
打印出来是:99832123
代码如下:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] array = {1,45,6,88,89,9,90};
getMax(array);
System.out.println(Integer.SIZE);
}
private static void getMax(int[] array) {
// TODO Auto-generated method stub
String[] str =new String[array.length];
int count=0;
for (int i : array) {
str[count]="";
str[count]+=i;
count++;
}
for (String string : str) {
System.out.print(string);
}
count =0;
for (String string : str) {
//int i=Integer.SIZE-string.length();//直接用int整数的最长,长度,倒是比较省事,,
int i=3-string.length();//应该以最长的字符长度减去当前的字符串长度
while(i>=0){
str[count]+="o";
i--;
}
count++;
}
Arrays.sort(str);
for (String string : str) {
System.out.println(string);
}
System.out.println();
for (int i=str.length-1;i>=0;i--) {
char[] mychar =str[i].toCharArray();
for (char c : mychar) {
if(c!='o'){
System.out.print(c);
}
}
}
System.out.println();
}