Java:将数字转换为二进制并从输入类排序

Java:将数字转换为二进制并从输入类排序,java,sorting,Java,Sorting,我无法将这些数字从输入文件转换为二进制。然后我假设用最小值对二进制数进行排序 数量最多的将排在第一位,数量最多的将排在最后。如果两个 数字的个数相同,请先按基数10对数字进行排序。 如果以10为基数的值相同,则按原始值对数字进行排序。打印出原始号码,其 以10为基数的值,最后以二进制打印出数字值。从中输入文件名 键盘我必须使用可比较的界面 如果有人能帮我把输入文件转换成二进制文件,那就足够了 public static void main(String[] args) throws IOExce

我无法将这些数字从输入文件转换为二进制。然后我假设用最小值对二进制数进行排序 数量最多的将排在第一位,数量最多的将排在最后。如果两个 数字的个数相同,请先按基数10对数字进行排序。 如果以10为基数的值相同,则按原始值对数字进行排序。打印出原始号码,其 以10为基数的值,最后以二进制打印出数字值。从中输入文件名 键盘我必须使用可比较的界面

如果有人能帮我把输入文件转换成二进制文件,那就足够了

public static void main(String[] args) throws IOException {

    //Prompt the user and asks for filename. 
    System.out.print("Enter the file name: ");
    Scanner in = new Scanner(System.in);    
    String file = in.next();    //input file name


    //Takes input and reads from file. 
    Scanner input = new Scanner(new FileReader(file));
    for(int i = 0; i < 16; i++){

    // Input file read. 
    System.out.println(input.nextLine());

    } 
publicstaticvoidmain(字符串[]args)引发IOException{
//提示用户并要求输入文件名。
System.out.print(“输入文件名:”);
扫描仪输入=新扫描仪(系统输入);
String file=in.next();//输入文件名
//获取输入并从文件中读取。
扫描仪输入=新扫描仪(新文件读取器(文件));
对于(int i=0;i<16;i++){
//读取输入文件。
System.out.println(input.nextLine());
} 

< /代码> 您首先应该将每一行保存为一个整数。因为它是一个需要排序的列表,请考虑使用数组。

int[] array = new array[size];
for (int i = 0; i < size; i++) {
    array[i] = input.nextLine();
}

这样做应该可以:

List<BigInteger> numbers = new ArrayList<>();
new Scanner(new FileReader(new File(""))).forEachRemaining(s -> numbers.add(new BigInteger(s)));
numbers.sort(Comparator.<BigInteger>comparingLong(i -> i.toString(2).chars().filter(b -> b == '1').count())
                       .thenComparing(Function.identity()));
numbers.forEach(i -> System.out.format("%d - %s%n", i, i.toString(2)));
List number=new ArrayList();
新扫描仪(新文件阅读器(新文件(“”))。forEachRemaining(s->numbers.add(new biginger));
numbers.sort(Comparator.comparingLong(i->i.toString(2).chars().filter(b->b=='1').count())
.然后比较(Function.identity());
numbers.forEach(i->System.out.format(“%d-%s%n”,i,i.toString(2));

您的输入变量类型是什么?它们只是一个整数列表吗?是的,它是一个文本文件中的整数列表“原始数字”和“其以10为基数的值”之间的区别是什么?
List<BigInteger> numbers = new ArrayList<>();
new Scanner(new FileReader(new File(""))).forEachRemaining(s -> numbers.add(new BigInteger(s)));
numbers.sort(Comparator.<BigInteger>comparingLong(i -> i.toString(2).chars().filter(b -> b == '1').count())
                       .thenComparing(Function.identity()));
numbers.forEach(i -> System.out.format("%d - %s%n", i, i.toString(2)));