我想将一个数组中给出的一些整数的二进制表示中 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]);
}
最佳答案
您正在将字符串传递给 Integer.bitCount
方法:
a2[i]=Integer.bitCount(arr[i]);
但是方法 bitCount(int) 不适用于参数 (String)。更改此分配以将 int
值传递给 bitCount
:
a2[i]=Integer.bitCount(Integer.parseInt(arr[i]));
关于java - 将 int 数组的二进制表示形式的 1 的数量存储在另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846288/