-1

对于给定的数字,我想从数字的数字中生成最大的数字。

例如:输入:3134059 最大数为:9543310 最小数为:1033459

错误:

Main.java:18: error: ';' expected
        public int compare(String X,String Y){
                          ^
Main.java:18: error: ';' expected
        public int compare(String X,String Y){
                                          ^
Main.java:18: error: not a statement
        public int compare(String X,String Y){
                                           ^
Main.java:18: error: ';' expected
        public int compare(String X,String Y){
                                            ^
4 errors

代码:

import java.util.*;
public class Main
{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter The Size of Array");
        int n=sc.nextInt();
        String[] arr=new String[n];
        for(int i=0;i<n;i++){
            arr[i]=sc.nextString();
        }
        printLargest(arr);

    }
    static void printLargest(String[] arr){
        Arrays.sort(arr, new Comparator<String>());
        @Override
        public int compare(String X,String Y){
            String XY=X+Y;
            String YX=Y+X;
            return XY.compareTo(YX)?1:-1;
        }
        for(int i=0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }

}
4

1 回答 1

0

Coorect 使用 Comparator 接口的方法及其唯一方法 compare()

import java.util.*;
public class Main
{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter The Size of Array");
        int n=sc.nextInt();
        String[] arr=new String[n];
        for(int i=0;i<n;i++){
            arr[i]=Integer.toString(sc.nextInt());
        }
        Arrays.sort(arr, new newComparator());
        for(int i=n-1;i>=0;i--){
            System.out.print(arr[i]);
        }
    }
}
class newComparator implements Comparator<String>{
        public int compare(String X,String Y){
            String XY=X+Y;
            String YX=Y+X;
            System.out.print(XY+" : ");
            System.out.print(YX);
            System.out.println();
            int a=Integer.parseInt(XY);
            int b=Integer.parseInt(YX);
            if(a==b) return 0;
            else if(a>b) return 1;
            else return -1;
        }
}
于 2020-04-19T14:36:25.153 回答