0

我想将 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]);
}
4

2 回答 2

1

根据Integer 文档,方法bitCount需要一个int和一个String

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

于 2013-09-17T09:44:32.220 回答
1

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

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

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

a2[i]=Integer.bitCount(Integer.parseInt(arr[i]));
于 2013-09-17T09:44:38.443 回答