首页 > 解决方案 > 我创建了十进制到二进制的方法,我想在二维数组中使用它,但我不能

问题描述

我创建了简单的十进制到二进制方法,如下所示:

public static int[] convertDectoB(int number, int size) {
    int binary[] = new int[size];
    for (int a = number; a > 0 && size > 0; size--, a = a / 2) {
        binary[size - 1] = a % 2;
    }
    return binary;
}

我要求用户输入这样的数字:

“输入数字:”

4-2-7。

目的是将这 3 个数字转换为二进制并打印出来:

1 0 0

0 1 0

1 1 1

我还创建了 numberFinder 方法来将整数提取到用户输入的字符串中:

public static int[] numberFinder(String numbers, int size) {
    int numaraa[] = new int[size];
    int a = 0;
    for (int i = 0; i < numaraa.length; i++) {
        for (; a < numbers.length(); a++) {
            if (numbers.charAt(i) == '-')
                i++;
            else if (a == 0) {
                if (Character.isDigit(numbers.charAt(a)))
                    numaraa[i] += numbers.charAt(a);
            }
            else {
                if (Character.isDigit(numbers.charAt(a)))
                    numaraa[i] += numbers.charAt(a);
            }
        }
    }
    return numaraa;
}

最后,我创建了二维数组,我想实现这些二进制值:

for (int i = 0; i < mainarray.length; i++) {
        for (int j = 0; j < mainarray[i].length; j++) {
            mainarray[i][j] = ? 
        }
    }
}

但我无法为每个数组块实现所有二进制值。

标签: javaarraysmultidimensional-arraymethods

解决方案


如果你需要自己制作toBinaryString()方法,网上有很多例子,比如借用这个答案的逻辑Print an integer in binary format in Java

public static String intToString(int number) {
        StringBuilder result = new StringBuilder();

        for(int i = 2; i >= 0 ; i--) {
            int mask = 1 << i;
            result.append((number & mask) != 0 ? "1" : "0");
        }
        return result.toString();
    }

注意:我将这个方法修改为只保存 3 位二进制代码,所以它可以转换的最大整数是7. 但是,如果你想转换更大的整数,比如最多 16 或 32,你需要增加for-loop 中的计数器,我将把它留给你决定。

对于用户输入中的每一行,将其拆分为连字符'-'

codes = line.split("-");
ListofCourses.addAll(Arrays.asList(codes));
...

然后在您的ListofCourses

for(int r = 0; r < ListofCourses.size(); r++){
    System.out.println(intToString(Integer.parseInt(ListofCourses.get(r))));
}
ListofCourses.clear();

然后应该得到预期的输出。这是演示:

Ron's Copy

Enter 3 collections of course codes one collection per line
4-2-7

Size: 3 Sorted: [4, 2, 7]
100
010
111

推荐阅读