Your task is to make a function that can take any non-negative integer as a argument and return it with its digits in descending order. Essentially, rearrange the digits to create the highest possible number.
Examples:
Input: 21445 Output: 54421
Input: 145263 Output: 654321
Input: 123456789 Output: 987654321
1:
improt java.util.Comparator;
improt java.util.stream.Collectors;
improt java.util.stream.Stream;
public class MM{
public static int method(final int num){
//java8
return Integer.parseInt(Stream.of(String.valueOf(num).split(""))
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining()));
}
}
2:
import java.util.Comarator;
import java.util.stream.Collectors;
public class MM{
public static int method(final int num){
return Integer.ParseInt(String.valueOf(num)
.chars()
.mapToObj(i->String.valueOf(Character.getNumericValue(i)))
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining()));
}
}
3:
public class MM{
public static int method(final int num){
if(num<0) throw new IllegalArgumentException("Negative"+num);
return Integer.parseInt(Integer.toString(num).codePoints()
.sorted()
.collect(StringBuilder::new,
StringBuilder::appendCodePoint,StringBuilder::append)
.reverse()
.toString());
}
}
4:
import java.util.Arrays;
import java.util.Collections;
public class MM{
public static int method(final int num){
String[] array=String.valueOf(num).split("");
Arrays.sort(array,Collection.reverseOrder());
return Integer.valueOf(String.join("",array));
}
}
5:
import java.util.*;
public class MM {
public static void main(String args[]) {
System.out.println(method(424345));
}
public static int method(final int num) {
List<Integer> list=new ArrayList();
String result="";
char[] arr=Integer.toString(num).toCharArray();
for(char item:arr){
list.add((item-'0'));
}
Collections.sort(list);
for(int item:list){
result+=(char)(item+48);
}
String mid= new StringBuffer(result).reverse().toString();
return Integer.parseInt(mid);
}
}