我想在另一个相应数组的数组中给出的某些整数的二进制表示中存储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]);
}
答案 0 :(得分:1)
根据Integer
documentation,方法bitCount
需要int
和String
,
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]));