将给定的数字排列成最大的数字



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

例如:输入: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]+" ");
}
}
}

使用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;
}
}

最新更新