在另一个数组中以int数组的二进制表示形式存储1的数字

时间:2013-09-17 09:37:18

标签: java arrays binary

我想在另一个相应数组的数组中给出的某些整数的二进制表示中存储1的数量;以下是我写的代码;但它显示错误“将'arr'的类型更改为'int'” 出了什么问题?

public static int[] arrange(int[] numbers){
String[] arr = new String[numbers.length];
for(int i =0;i<numbers.length;i++){
    arr[i]= Integer.toBinaryString(numbers[i]);
}
int[] a2 = new int[numbers.length];
for(int i =0;i<numbers.length;i++){
    a2[i]=Integer.bitCount(arr[i]);
}

2 个答案:

答案 0 :(得分:1)

根据Integer documentation,方法bitCount需要intString

Integer.bitCount(arr[i]);arr[i]String

答案 1 :(得分:1)

您正在将字符串传递给Integer.bitCount方法:

a2[i]=Integer.bitCount(arr[i]);

但方法bitCount(int)不适用于参数(String)。更改此分配以将int值传递给bitCount

a2[i]=Integer.bitCount(Integer.parseInt(arr[i]));